お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2010-05-01 04:24:54

koachi
メンバ
登録日: 2008-05-03

ubuntu10.04でのboostライブラリ

boostライブラリを用いてプログラミングしています.

10.04上で以下のコマンドでboostをインストールしました.

$ sudo apt-get install 'libboost*-dev'

9.10までprogram_options.hppをインクルードしてg++オプションでboost_program_options-mtライブラリを指定していましたが,
このオプションではコンパイルできなくなりました.

自分なりに調べてみて,

$ g++ hogehoge.cpp -lboost_program_options-mt-d
としてコンパイルしたところ

olwlb.o: In function `main':
olwlb.cpp:(.text+0x1196): undefined reference to `boost::program_options::options_description::m_default_line_length'
olwlb.o: In function `boost::program_options::basic_command_line_parser<char>::extra_parser(boost::function1<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>)':
olwlb.cpp:(.text._ZN5boost15program_options25basic_command_line_parserIcE12extra_parserENS_9function1ISt4pairISsSsERKSsEE[boost::program_options::basic_command_line_parser<char>::extra_parser(boost::function1<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>)]+0x28): undefined reference to `boost::program_options::detail::cmdline::set_additional_parser(boost::function1<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>)'
collect2: ld returned 1 exit status
make: *** [olwlb] エラー 1

となりました.

cannot findとログが表示されていないことから指定自体は間違ってないみたいなんですが,正常にコンパイルできません.

もうこれ以上自分で出来ることがないので,助けてください.

オフライン

 

#2 2010-05-01 05:27:58

koachi
メンバ
登録日: 2008-05-03

Re: ubuntu10.04でのboostライブラリ


$ ldconfig -p | grep boost_program_options
    libboost_program_options.so.1.40.0 (libc6) => /usr/lib/libboost_program_options.so.1.40.0
    libboost_program_options-gcc42-mt-d-1_34_1.so.1.34.1 (libc6) => /usr/lib/libboost_program_options-gcc42-mt-d-1_34_1.so.1.34.1
    libboost_program_options-gcc42-mt-d-1_34_1.so (libc6) => /usr/lib/libboost_program_options-gcc42-mt-d-1_34_1.so
    libboost_program_options-gcc42-d-1_34_1.so.1.34.1 (libc6) => /usr/lib/libboost_program_options-gcc42-d-1_34_1.so.1.34.1
    libboost_program_options-gcc42-d-1_34_1.so (libc6) => /usr/lib/libboost_program_options-gcc42-d-1_34_1.so

オフライン

 

#3 2010-05-01 06:06:56

koachi
メンバ
登録日: 2008-05-03

Re: ubuntu10.04でのboostライブラリ


$ sudo ln -s libboost_program_options.so.1.40.0 libboost_program_options.so


としたら,正常にコンパイルできました.
また,実行においてコアダンプしていないので正常に動いてると思います.

オフライン

 

Board footer

Powered by FluxBB