id summary reporter owner description type status milestone component version severity resolution keywords cc 13173 """program_options"" build fail. ""boost::lambda"" is working without any problem." Yoni Shperling Vladimir Prus " Hello, ""program_options"" build fail. ""boost::lambda"" is working without any problem. This example below doesn't work: {{{ #include ""boost/program_options.hpp"" namespace po = boost::program_options; #include #include 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(), ""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 0; } if (vm.count(""compression"")) { cout << ""Compression level was set to "" << vm[""compression""].as() << "".\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; } }}} {{{ [ 50%] Linking CXX executable mem1 Undefined symbols for architecture x86_64: ""boost::program_options::validators::check_first_occurrence(boost::any const&)"", referenced from: void boost::program_options::validate(boost::any&, std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > > const&, double*, long) in main.cpp.o ""boost::program_options::to_internal(std::__1::basic_string, std::__1::allocator > const&)"", referenced from: std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > > boost::program_options::to_internal, std::__1::allocator > >(std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > > const&) in main.cpp.o ""boost::program_options::variables_map::variables_map()"", referenced from: _main in main.cpp.o ""boost::program_options::validation_error::get_template(boost::program_options::validation_error::kind_t)"", referenced from: boost::program_options::validation_error::validation_error(boost::program_options::validation_error::kind_t, std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, int) in main.cpp.o ""boost::program_options::options_description::add_options()"", referenced from: _main in main.cpp.o ""boost::program_options::options_description::m_default_line_length"", referenced from: _main in main.cpp.o ""boost::program_options::options_description::options_description(std::__1::basic_string, std::__1::allocator > const&, unsigned int, unsigned int)"", referenced from: _main in main.cpp.o ""boost::program_options::invalid_option_value::invalid_option_value(std::__1::basic_string, std::__1::allocator > const&)"", referenced from: void boost::program_options::validate(boost::any&, std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > > const&, double*, long) in main.cpp.o ""boost::program_options::error_with_option_name::error_with_option_name(std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, int)"", referenced from: boost::program_options::validation_error::validation_error(boost::program_options::validation_error::kind_t, std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, int) in main.cpp.o ""boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)"", referenced from: _main in main.cpp.o ""boost::program_options::options_description_easy_init::operator()(char const*, char const*)"", referenced from: _main in main.cpp.o ""boost::program_options::arg"", referenced from: boost::program_options::typed_value::name() const in main.cpp.o ""boost::program_options::store(boost::program_options::basic_parsed_options const&, boost::program_options::variables_map&, bool)"", referenced from: _main in main.cpp.o ""boost::program_options::detail::cmdline::set_additional_parser(boost::function1, std::__1::allocator >, std::__1::basic_string, std::__1::allocator > >, std::__1::basic_string, std::__1::allocator > const&>)"", referenced from: boost::program_options::basic_command_line_parser::extra_parser(boost::function1, std::__1::allocator >, std::__1::basic_string, std::__1::allocator > >, std::__1::basic_string, std::__1::allocator > const&>) in main.cpp.o ""boost::program_options::detail::cmdline::set_options_description(boost::program_options::options_description const&)"", referenced from: boost::program_options::basic_command_line_parser::options(boost::program_options::options_description const&) in main.cpp.o ""boost::program_options::detail::cmdline::get_canonical_option_prefix()"", referenced from: boost::program_options::basic_command_line_parser::run() in main.cpp.o ""boost::program_options::detail::cmdline::run()"", referenced from: boost::program_options::basic_command_line_parser::run() in main.cpp.o ""boost::program_options::detail::cmdline::style(int)"", referenced from: boost::program_options::basic_command_line_parser::style(int) in main.cpp.o ""boost::program_options::detail::cmdline::cmdline(std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > > const&)"", referenced from: boost::program_options::basic_command_line_parser::basic_command_line_parser(int, char const* const*) in main.cpp.o ""boost::program_options::notify(boost::program_options::variables_map&)"", referenced from: _main in main.cpp.o ""boost::program_options::operator<<(std::__1::basic_ostream >&, boost::program_options::options_description const&)"", referenced from: _main in main.cpp.o ""boost::program_options::abstract_variables_map::operator[](std::__1::basic_string, std::__1::allocator > const&) const"", referenced from: boost::program_options::variables_map::operator[](std::__1::basic_string, std::__1::allocator > const&) const in main.cpp.o ""boost::program_options::error_with_option_name::substitute_placeholders(std::__1::basic_string, std::__1::allocator > const&) const"", referenced from: vtable for boost::exception_detail::clone_impl > in main.cpp.o vtable for boost::exception_detail::error_info_injector in main.cpp.o vtable for boost::program_options::validation_error in main.cpp.o vtable for boost::exception_detail::clone_impl > in main.cpp.o vtable for boost::exception_detail::error_info_injector in main.cpp.o vtable for boost::program_options::invalid_option_value in main.cpp.o ""boost::program_options::error_with_option_name::what() const"", referenced from: vtable for boost::exception_detail::clone_impl > in main.cpp.o vtable for boost::exception_detail::error_info_injector in main.cpp.o vtable for boost::program_options::validation_error in main.cpp.o vtable for boost::exception_detail::clone_impl > in main.cpp.o vtable for boost::exception_detail::error_info_injector in main.cpp.o vtable for boost::program_options::invalid_option_value in main.cpp.o ""boost::program_options::value_semantic_codecvt_helper::parse(boost::any&, std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > > const&, bool) const"", referenced from: vtable for boost::program_options::typed_value in main.cpp.o ""typeinfo for boost::program_options::error_with_option_name"", referenced from: typeinfo for boost::program_options::validation_error in main.cpp.o ""typeinfo for boost::program_options::value_semantic_codecvt_helper"", referenced from: typeinfo for boost::program_options::typed_value in main.cpp.o ""vtable for boost::program_options::variables_map"", referenced from: boost::program_options::variables_map::~variables_map() in main.cpp.o NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. ""vtable for boost::program_options::error_with_option_name"", referenced from: boost::program_options::error_with_option_name::error_with_option_name(boost::program_options::error_with_option_name const&) in main.cpp.o boost::program_options::error_with_option_name::~error_with_option_name() in main.cpp.o NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. ""vtable for boost::program_options::value_semantic_codecvt_helper"", referenced from: boost::program_options::value_semantic_codecvt_helper::value_semantic_codecvt_helper() in main.cpp.o NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[3]: *** [mem1] Error 1 make[2]: *** [CMakeFiles/mem1.dir/all] Error 2 make[1]: *** [CMakeFiles/mem1.dir/rule] Error 2 make: *** [mem1] Error 2 }}} This example below is working: {{{ #include #include #include #include int main() { using namespace boost::lambda; typedef std::istream_iterator in; std::for_each( in(std::cin), in(), std::cout << (_1 * 3) << "" "" ); } }}} Thank you, Yoni" Bugs new To Be Determined program_options Boost 1.64.0 Problem