c++ - clang++ compile simple boost program linker command failed -


i have been following many other answers here on stackoverflow , other resources, can't clang work boost 1.63 on macos. installed boost:

./bootstrap.sh --prefix=/usr/local

./b2 cxxflags="-stdlib=libc++" linkflags="-stdlib=libc++"

now. im doing following:

#include <boost/program_options.hpp> namespace po = boost::program_options;  int main() {    // declare supported options.    po::options_description desc("allowed options");    desc.add_options()     ("help", "produce message")     ("compression", po::value<int>(), "set compression level")    ; } 

this gives me:

clang++  \         -g -wall -wextra  \         -std=c++14  \         -stdlib=libc++ \         -i /usr/local/include \         -l /usr/local/lib \         ./src/main.cpp \         -o ./src/tool.o  undefined symbols architecture x86_64:   "boost::program_options::validators::check_first_occurrence(boost::any const&)", referenced from:       void boost::program_options::validate<int, char>(boost::any&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, int*, long) in main-afe96c.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<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) in main-afe96c.o   "boost::program_options::options_description::add_options()", referenced from:       _main in main-afe96c.o   "boost::program_options::options_description::m_default_line_length", referenced from:       _main in main-afe96c.o   "boost::program_options::options_description::options_description(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned int, unsigned int)", referenced from:       _main in main-afe96c.o   "boost::program_options::invalid_option_value::invalid_option_value(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:       void boost::program_options::validate<int, char>(boost::any&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::vector<int, std::__1::allocator<int> >*, int) in main-afe96c.o       void boost::program_options::validate<int, char>(boost::any&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, int*, long) in main-afe96c.o   "boost::program_options::error_with_option_name::error_with_option_name(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)", referenced from:       boost::program_options::validation_error::validation_error(boost::program_options::validation_error::kind_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) in main-afe96c.o   "boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)", referenced from:       _main in main-afe96c.o   "boost::program_options::options_description_easy_init::operator()(char const*, char const*)", referenced from:       _main in main-afe96c.o   "boost::program_options::arg", referenced from:       boost::program_options::typed_value<std::__1::vector<int, std::__1::allocator<int> >, char>::name() const in main-afe96c.o   "boost::program_options::error_with_option_name::substitute_placeholders(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const", referenced from:       vtable boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::program_options::validation_error> > in main-afe96c.o       vtable boost::exception_detail::error_info_injector<boost::program_options::validation_error> in main-afe96c.o       vtable boost::program_options::validation_error in main-afe96c.o       vtable boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::program_options::invalid_option_value> > in main-afe96c.o       vtable boost::exception_detail::error_info_injector<boost::program_options::invalid_option_value> in main-afe96c.o       vtable boost::program_options::invalid_option_value in main-afe96c.o   "boost::program_options::error_with_option_name::what() const", referenced from:       vtable boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::program_options::validation_error> > in main-afe96c.o       vtable boost::exception_detail::error_info_injector<boost::program_options::validation_error> in main-afe96c.o       vtable boost::program_options::validation_error in main-afe96c.o       vtable boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::program_options::invalid_option_value> > in main-afe96c.o       vtable boost::exception_detail::error_info_injector<boost::program_options::invalid_option_value> in main-afe96c.o       vtable boost::program_options::invalid_option_value in main-afe96c.o   "boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, bool) const", referenced from:       vtable boost::program_options::typed_value<std::__1::vector<int, std::__1::allocator<int> >, char> in main-afe96c.o   "typeinfo boost::program_options::error_with_option_name", referenced from:       typeinfo boost::program_options::validation_error in main-afe96c.o   "typeinfo boost::program_options::value_semantic_codecvt_helper<char>", referenced from:       typeinfo boost::program_options::typed_value<std::__1::vector<int, std::__1::allocator<int> >, char> in main-afe96c.o   "vtable 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-afe96c.o       boost::program_options::error_with_option_name::~error_with_option_name() in main-afe96c.o   note: missing vtable means first non-inline virtual member function has no definition.   "vtable boost::program_options::value_semantic_codecvt_helper<char>", referenced from:       boost::program_options::value_semantic_codecvt_helper<char>::value_semantic_codecvt_helper() in main-afe96c.o   note: missing vtable means first non-inline virtual member function has no definition. ld: symbol(s) not found architecture x86_64 clang: error: linker command failed exit code 1 (use -v see invocation) make: *** [annorna] error 1 

however, adding -l boost_system not work. solution boost going? path wrong? or need other flag?


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -