Ubuntuでaptからboostライブラリを取得し、プラグラムで使用する場合に下記のようなエラーがでる場合がある。
下記はコマンドライン引数を分解するライブラリ「program_options」を使った場合
mk.cpp:(.text+0x219): undefined reference to `boost::program_options::variables_map::variables_map()'<br>mk.cpp:(.text+0x21f): undefined reference to `boost::program_options::options_description::m_default_line_length'<br>mk.cpp:(.text+0x25d): undefined reference to `boost::program_options::options_description::options_description(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)'<br>mk.cpp:(.text+0x29f): undefined reference to `boost::program_options::options_description::add_options()'<br>mk.cpp:(.text+0x2bd): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, char const*)'<br>mk.cpp:(.text+0x307): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, char const*)'<br>mk.cpp:(.text+0x31f): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, char const*)'<br>mk.cpp:(.text+0x387): undefined reference to `boost::program_options::store(boost::program_options::basic_parsed_options<char> const&, boost::program_options::variables_map&, bool)'<br>mk.cpp:(.text+0x481): undefined reference to `boost::program_options::operator<<(std::basic_ostream<char, std::char_traits<char> >&, boost::program_options::options_description const&)'
g++の引数に場所を追加
これはBoostの場所が認識されていないので、g++にライブラリ名を追加する必要がある。
g++ –o a.o a.cpp -lboost_program_options
などとすればOK。