Thanks for the quick response! > >could you please provide an example that produces these errors? > > Sure. The example program first.cpp (attatched) from:
libboost-doc: /usr/share/doc/libboost-doc/examples/libs/program_options/example/first.cpp The output is: g++ first.cpp -o first In file included from /usr/local/include/boost/config.hpp:35, from /usr/local/include/boost/program_options/config.hpp:10, from /usr/local/include/boost/program_options/options_description.hpp:10, from /usr/local/include/boost/program_options.hpp:13, from first.cpp:9: /usr/local/include/boost/config/compiler/gcc.hpp:92:7: warning: #warning "Unknown compiler version - please run the configure tests and report the results" /tmp/ccnUN5uH.o: In function `main': first.cpp:(.text+0xa7): undefined reference to `boost::program_options::options_description::options_description(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' first.cpp:(.text+0x15a): undefined reference to `boost::program_options::options_description::add_options()' first.cpp:(.text+0x17c): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, char const*)' first.cpp:(.text+0x195): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'first.cpp:(.text+0x1a4): undefined reference to `boost::program_options::variables_map::variables_map()' first.cpp:(.text+0x1ea): undefined reference to `boost::program_options::store(boost::program_options::basic_parsed_options<char> const&, boost::program_options::variables_map&, bool)' first.cpp:(.text+0x288): undefined reference to `boost::program_options::notify(boost::program_options::variables_map&)' first.cpp:(.text+0x37b): undefined reference to `boost::program_options::operator<<(std::basic_ostream<char, std::char_traits<char> >&, boost::program_options::options_description const&)'/tmp/ccnUN5uH.o:(.gnu.linkonce.r._ZTVN5boost15program_options11typed_valueIicEE[vtable for boost::program_options::typed_value<int, char>]+0x1c): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const' /tmp/ccnUN5uH.o:(.gnu.linkonce.r._ZTIN5boost15program_options11typed_valueIicEE[typeinfo for boost::program_options::typed_value<int, char>]+0x8): undefined reference to `typeinfo for boost::program_options::value_semantic_codecvt_helper<char>' /tmp/ccnUN5uH.o:(.gnu.linkonce.r._ZTIN5boost15program_options20invalid_option_valueE[typeinfo for boost::program_options::invalid_option_value]+0x8): undefined reference to `typeinfo for boost::program_options::validation_error' /tmp/ccnUN5uH.o:(.gnu.linkonce.r._ZTVN5boost15program_options20invalid_option_valueE[vtable for boost::program_options::invalid_option_value]+0x10): undefined reference to `boost::program_options::validation_error::what() const' /tmp/ccnUN5uH.o: In function `boost::program_options::validation_error::validation_error(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': first.cpp:(.gnu.linkonce.t._ZN5boost15program_options16validation_errorC1ERKSs[boost::program_options::validation_error::validation_error(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)]+0x1a): undefined reference to `vtable for boost::program_options::validation_error' /tmp/ccnUN5uH.o: In function `boost::program_options::validation_error::~validation_error()': first.cpp:(.gnu.linkonce.t._ZN5boost15program_options16validation_errorD2Ev[boost::program_options::validation_error::~validation_error()]+0x9): undefined reference to `vtable for boost::program_options::validation_error' /tmp/ccnUN5uH.o: In function `boost::program_options::validation_error::~validation_error()': first.cpp:(.gnu.linkonce.t._ZN5boost15program_options16validation_errorD1Ev[boost::program_options::validation_error::~validation_error()]+0x9): undefined reference to `vtable for boost::program_options::validation_error' /tmp/ccnUN5uH.o: In function `boost::program_options::value_semantic_codecvt_helper<char>::value_semantic_codecvt_helper()': first.cpp:(.gnu.linkonce.t._ZN5boost15program_options29value_semantic_codecvt_helperIcEC2Ev[boost::program_options::value_semantic_codecvt_helper<char>::value_semantic_codecvt_helper()]+0x16): undefined reference to `vtable for boost::program_options::value_semantic_codecvt_helper<char>' /tmp/ccnUN5uH.o: In function `boost::program_options::value_semantic_codecvt_helper<char>::~value_semantic_codecvt_helper()': first.cpp:(.gnu.linkonce.t._ZN5boost15program_options29value_semantic_codecvt_helperIcED2Ev[boost::program_options::value_semantic_codecvt_helper<char>::~value_semantic_codecvt_helper()]+0x7): undefined reference to `vtable for boost::program_options::value_semantic_codecvt_helper<char>' /tmp/ccnUN5uH.o: In function `boost::program_options::variables_map::operator[](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const': first.cpp:(.gnu.linkonce.t._ZNK5boost15program_options13variables_mapixERKSs[boost::program_options::variables_map::operator[](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const]+0x11): undefined reference to `boost::program_options::abstract_variables_map::operator[](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' /tmp/ccnUN5uH.o: In function `boost::program_options::basic_command_line_parser<char>::run() const': first.cpp:(.gnu.linkonce.t._ZNK5boost15program_options25basic_command_line_parserIcE3runEv[boost::program_options::basic_command_line_parser<char>::run() const]+0x12): undefined reference to `boost::program_options::common_command_line_parser::run() const' /tmp/ccnUN5uH.o: In function `boost::program_options::variables_map::~variables_map()': first.cpp:(.gnu.linkonce.t._ZN5boost15program_options13variables_mapD1Ev[boost::program_options::variables_map::~variables_map()]+0x8): undefined reference to `vtable for boost::program_options::variables_map' /tmp/ccnUN5uH.o: In function `std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > boost::program_options::to_internal<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)': first.cpp:(.gnu.linkonce.t._ZN5boost15program_options11to_internalISsEESt6vectorISsSaISsEERKS2_IT_SaIS5_EE[std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > boost::program_options::to_internal<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)]+0x5b): undefined reference to `boost::program_options::to_internal(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' /tmp/ccnUN5uH.o: In function `boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(int, char**)': first.cpp:(.gnu.linkonce.t._ZN5boost15program_options25basic_command_line_parserIcEC1EiPPc[boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(int, char**)]+0x46): undefined reference to `boost::program_options::common_command_line_parser::common_command_line_parser(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)' /tmp/ccnUN5uH.o: In function `boost::program_options::typed_value<int, char>::name() const': first.cpp:(.gnu.linkonce.t._ZNK5boost15program_options11typed_valueIicE4nameEv[boost::program_options::typed_value<int, char>::name() const]+0x6c): undefined reference to `boost::program_options::arg' first.cpp:(.gnu.linkonce.t._ZNK5boost15program_options11typed_valueIicE4nameEv[boost::program_options::typed_value<int, char>::name() const]+0x10c): undefined reference to `boost::program_options::arg' /tmp/ccnUN5uH.o: In function `std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& boost::program_options::validators::get_single_string<char>(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool)': first.cpp:(.gnu.linkonce.t._ZN5boost15program_options10validators17get_single_stringIcEERKSbIT_St11char_traitsIS3_ESaIS3_EERKSt6vectorIS7_SaIS7_EEb[std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& boost::program_options::validators::get_single_string<char>(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool)]+0x1b6): undefined reference to `typeinfo for boost::program_options::validation_error' first.cpp:(.gnu.linkonce.t._ZN5boost15program_options10validators17get_single_stringIcEERKSbIT_St11char_traitsIS3_ESaIS3_EERKSt6vectorIS7_SaIS7_EEb[std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& boost::program_options::validators::get_single_string<char>(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool)]+0x2f6): undefined reference to `typeinfo for boost::program_options::validation_error' /tmp/ccnUN5uH.o: In function `void boost::program_options::validate<int, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, int*, long)': first.cpp:(.gnu.linkonce.t._ZN5boost15program_options8validateIicEEvRNS_3anyERKSt6vectorISbIT0_St11char_traitsIS5_ESaIS5_EESaIS9_EEPT_l[void boost::program_options::validate<int, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, int*, long)]+0xf): undefined reference to `boost::program_options::validators::check_first_occurrence(boost::any const&)' first.cpp:(.gnu.linkonce.t._ZN5boost15program_options8validateIicEEvRNS_3anyERKSt6vectorISbIT0_St11char_traitsIS5_ESaIS5_EESaIS9_EEPT_l[void boost::program_options::validate<int, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, int*, long)]+0x128): undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' collect2: ld returned 1 exit status make: *** [first] Error 1 -BenRI
// Copyright Vladimir Prus 2002-2004. // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt // or copy at http://www.boost.org/LICENSE_1_0.txt) /* The simplest usage of the library. */ #include <boost/program_options.hpp> namespace po = boost::program_options; #include <iostream> #include <iterator> using namespace std; int main(int ac, char* av[]) { try { po::options_description desc("Allowed options"); desc.add_options() ("help", "produce help message") ("compression", po::value<int>(), "set compression level") ; po::variables_map vm; po::store(po::parse_command_line(ac, av, desc), vm); po::notify(vm); if (vm.count("help")) { cout << desc << "\n"; return 1; } if (vm.count("compression")) { cout << "Compression level was set to " << vm["compression"].as<int>() << ".\n"; } else { cout << "Compression level was not set.\n"; } } catch(exception& e) { cerr << "error: " << e.what() << "\n"; return 1; } catch(...) { cerr << "Exception of unknown type!\n"; } return 0; }