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

Retrieving ETA (estimated time of arrival) with Google Distance Matrix API and public transit as transport mode -

javascript - Confirm a form & display message if form is valid with JQuery -

ionic framework - Meteor - Error: Failed to execute 'insertBefore' on 'Node' -