boost::program_optionがリンクできない
Ubuntu 10.4 でboost 1.49 にしてみたら、boost 1.38で通っていた program_optionがリンクエラーを吐くようになってしまった。リファレンスを見ても仕様変更があったようには見えないので理由がわからない。
ヘッダファイルを 1.38 にして 1.40の so をリンクするとエラーが出ないという謎の状況になっている。
CMakeFiles/runScRec.dir/main.cpp.o: In function `T.2387':
main.cpp:(.text+0x61b): undefined reference to `boost::program_options::validation_error::validation_error(boost::program_options::validation_error::kind_t, std::basic_string
main.cpp:(.text+0x679): undefined reference to `boost::program_options::validation_error::validation_error(boost::program_options::validation_error::kind_t, std::basic_string
CMakeFiles/runScRec.dir/main.cpp.o: In function `ParseOption(int, char**)':
main.cpp:(.text+0x796): undefined reference to `boost::program_options::options_description::options_description(std::basic_string
collect2: ld returned 1 exit status
なんだろうこれは?
自己解決した。
sudo apt-get remove libboost1.40-dev
したら、ビルドできるようになった。どうやらboostがいっぱいインストールされすぎてて対応が取れなくなっていただけらしい。