Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Boost fails #57

Open
iplayfast opened this issue May 21, 2018 · 8 comments
Open

Boost fails #57

iplayfast opened this issue May 21, 2018 · 8 comments

Comments

@iplayfast
Copy link

Lots'o boost errors. Using boost 1.58 for the most part. A couple of 1.54s.

CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o: In function boost::program_options::typed_value<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>::xparse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) const': /usr/local/include/boost/program_options/detail/value_semantic.hpp:167: undefined reference to boost::program_options::validate(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, int)'
CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o: In function boost::program_options::validation_error::validation_error(boost::program_options::validation_error::kind_t, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)': /usr/local/include/boost/program_options/errors.hpp:373: undefined reference to boost::program_options::validation_error::get_templateabi:cxx11'
/usr/local/include/boost/program_options/errors.hpp:373: undefined reference to boost::program_options::error_with_option_name::error_with_option_name(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)' CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o: In function boost::program_options::basic_command_line_parser::extra_parser(boost::function1<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&>)':
/usr/local/include/boost/program_options/detail/parsers.hpp:78: undefined reference to boost::program_options::detail::cmdline::set_additional_parser(boost::function1<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>)' CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o: In function std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > boost::program_options::to_internal<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >(std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&)':
/usr/local/include/boost/program_options/detail/convert.hpp:79: undefined reference to boost::program_options::to_internal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o: In function boost::program_options::basic_command_line_parser::basic_command_line_parser(int, char const
const*)':
/usr/local/include/boost/program_options/detail/parsers.hpp:44: undefined reference to boost::program_options::detail::cmdline::cmdline(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)' CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o: In function boost::program_options::typed_value<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, char>::name() const':
/usr/local/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to boost::program_options::arg[abi:cxx11]' CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o: In function boost::program_options::typed_value<float, char>::name() const':
/usr/local/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to boost::program_options::arg[abi:cxx11]' CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o: In function boost::program_options::typed_value<unsigned int, char>::name() const':
/usr/local/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to boost::program_options::arg[abi:cxx11]' CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o: In function boost::program_options::typed_value<unsigned long, char>::name() const':
/usr/local/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to boost::program_options::arg[abi:cxx11]' CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o: In function main':
/home/chris/Downloads/cog/moses/moses/comboreduct/main/gen-disj-conj.cc:57: undefined reference to boost::program_options::options_description::options_description(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)' CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o: In function void boost::program_options::validate<float, char>(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, float*, long)':
/usr/local/include/boost/program_options/detail/value_semantic.hpp:92: undefined reference to boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o: In function void boost::program_options::validate<unsigned int, char>(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, unsigned int*, long)':
/usr/local/include/boost/program_options/detail/value_semantic.hpp:92: undefined reference to boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o: In function void boost::program_options::validate<unsigned long, char>(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, unsigned long*, long)':
/usr/local/include/boost/program_options/detail/value_semantic.hpp:92: undefined reference to boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o:(.rodata._ZTVN5boost16exception_detail19error_info_injectorINS_15program_options20invalid_option_valueEEE[_ZTVN5boost16exception_detail19error_info_injectorINS_15program_options20invalid_option_valueEEE]+0x30): undefined reference to boost::program_options::error_with_option_name::substitute_placeholders(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) const'
CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o:(.rodata._ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options20invalid_option_valueEEEEE[_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options20invalid_option_valueEEEEE]+0x38): undefined reference to boost::program_options::error_with_option_name::substitute_placeholders(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o:(.rodata._ZTVN5boost16exception_detail19error_info_injectorINS_15program_options16validation_errorEEE[_ZTVN5boost16exception_detail19error_info_injectorINS_15program_options16validation_errorEEE]+0x30): undefined reference to boost::program_options::error_with_option_name::substitute_placeholders(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) const'
CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o:(.rodata._ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options16validation_errorEEEEE[_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options16validation_errorEEEEE]+0x38): undefined reference to boost::program_options::error_with_option_name::substitute_placeholders(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o:(.rodata._ZTVN5boost15program_options16validation_errorE[_ZTVN5boost15program_options16validation_errorE]+0x30): undefined reference to boost::program_options::error_with_option_name::substitute_placeholders(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) const'
CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o:(.rodata._ZTVN5boost15program_options20invalid_option_valueE[_ZTVN5boost15program_options20invalid_option_valueE]+0x30): more undefined references to boost::program_options::error_with_option_name::substitute_placeholders(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' follow CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o:(.rodata._ZTVN5boost15program_options11typed_valueImcEE[_ZTVN5boost15program_options11typed_valueImcEE]+0x40): undefined reference to boost::program_options::value_semantic_codecvt_helper::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, bool) const'
CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o:(.rodata._ZTVN5boost15program_options11typed_valueIjcEE[_ZTVN5boost15program_options11typed_valueIjcEE]+0x40): undefined reference to boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const' CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o:(.rodata._ZTVN5boost15program_options11typed_valueIfcEE[_ZTVN5boost15program_options11typed_valueIfcEE]+0x40): undefined reference to boost::program_options::value_semantic_codecvt_helper::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, bool) const'
CMakeFiles/gen-disj-conj.dir/gen-disj-conj.cc.o:(.rodata._ZTVN5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEE[_ZTVN5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEE]+0x40): undefined reference to boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const' ../libcomboreduct.so: undefined reference to boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > >::maybe_assign(boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > > const&)'
../libcomboreduct.so: undefined reference to boost::gregorian::greg_month::get_month_map_ptr[abi:cxx11]()' ../libcomboreduct.so: undefined reference to boost::re_detail_106100::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > >, boost::regex_traits<char, boost::cpp_regex_traits > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits > > const&, boost::regex_constants::_match_flags)'
collect2: error: ld returned 1 exit status
moses/comboreduct/main/CMakeFiles/gen-disj-conj.dir/build.make:102: recipe for target 'moses/comboreduct/main/gen-disj-conj' failed
make[2]: *** [moses/comboreduct/main/gen-disj-conj] Error 1
CMakeFiles/Makefile2:566: recipe for target 'moses/comboreduct/main/CMakeFiles/gen-disj-conj.dir/all' failed
make[1]: *** [moses/comboreduct/main/CMakeFiles/gen-disj-conj.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
CMakeFiles/combo-fmt-converter.dir/combo-fmt-converter.cc.o: In function parse_program_args(int, char**)': /home/chris/Downloads/cog/moses/moses/comboreduct/main/combo-fmt-converter.cc:63: undefined reference to boost::program_options::options_description::options_description(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, unsigned int, unsigned int)'
CMakeFiles/combo-fmt-converter.dir/combo-fmt-converter.cc.o: In function boost::program_options::typed_value<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>::xparse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) const': /usr/local/include/boost/program_options/detail/value_semantic.hpp:167: undefined reference to boost::program_options::validate(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, int)'
CMakeFiles/combo-fmt-converter.dir/combo-fmt-converter.cc.o: In function boost::program_options::basic_command_line_parser<char>::extra_parser(boost::function1<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>)': /usr/local/include/boost/program_options/detail/parsers.hpp:78: undefined reference to boost::program_options::detail::cmdline::set_additional_parser(boost::function1<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&>)'
CMakeFiles/combo-fmt-converter.dir/combo-fmt-converter.cc.o: In function std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > boost::program_options::to_internal<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)': /usr/local/include/boost/program_options/detail/convert.hpp:79: undefined reference to boost::program_options::to_internal(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)'
CMakeFiles/combo-fmt-converter.dir/combo-fmt-converter.cc.o: In function boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(int, char const* const*)': /usr/local/include/boost/program_options/detail/parsers.hpp:44: undefined reference to boost::program_options::detail::cmdline::cmdline(std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&)'
CMakeFiles/combo-fmt-converter.dir/combo-fmt-converter.cc.o: In function boost::program_options::typed_value<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>::name() const': /usr/local/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to boost::program_options::arg[abi:cxx11]'
CMakeFiles/combo-fmt-converter.dir/combo-fmt-converter.cc.o: In function boost::program_options::typed_value<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, char>::name() const': /usr/local/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to boost::program_options::arg[abi:cxx11]'
CMakeFiles/combo-fmt-converter.dir/combo-fmt-converter.cc.o: In function void boost::program_options::validate<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, int)': /usr/local/include/boost/program_options/detail/value_semantic.hpp:146: undefined reference to boost::program_options::validate(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >
, int)'
/usr/local/include/boost/program_options/detail/value_semantic.hpp:150: undefined reference to boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' CMakeFiles/combo-fmt-converter.dir/combo-fmt-converter.cc.o:(.rodata._ZTVN5boost16exception_detail19error_info_injectorINS_15program_options20invalid_option_valueEEE[_ZTVN5boost16exception_detail19error_info_injectorINS_15program_options20invalid_option_valueEEE]+0x30): undefined reference to boost::program_options::error_with_option_name::substitute_placeholders(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) const'
CMakeFiles/combo-fmt-converter.dir/combo-fmt-converter.cc.o:(.rodata._ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options20invalid_option_valueEEEEE[_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options20invalid_option_valueEEEEE]+0x38): undefined reference to boost::program_options::error_with_option_name::substitute_placeholders(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' CMakeFiles/combo-fmt-converter.dir/combo-fmt-converter.cc.o:(.rodata._ZTVN5boost15program_options16validation_errorE[_ZTVN5boost15program_options16validation_errorE]+0x30): undefined reference to boost::program_options::error_with_option_name::substitute_placeholders(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) const'
CMakeFiles/combo-fmt-converter.dir/combo-fmt-converter.cc.o:(.rodata._ZTVN5boost15program_options20invalid_option_valueE[_ZTVN5boost15program_options20invalid_option_valueE]+0x30): undefined reference to boost::program_options::error_with_option_name::substitute_placeholders(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' CMakeFiles/combo-fmt-converter.dir/combo-fmt-converter.cc.o:(.rodata._ZTVN5boost15program_options11typed_valueISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEcEE[_ZTVN5boost15program_options11typed_valueISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEcEE]+0x40): undefined reference to boost::program_options::value_semantic_codecvt_helper::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, bool) const'
CMakeFiles/combo-fmt-converter.dir/combo-fmt-converter.cc.o:(.rodata._ZTVN5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEE[_ZTVN5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEE]+0x40): undefined reference to boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const' ../libcomboreduct.so: undefined reference to boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > >::maybe_assign(boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > > const&)'
../libcomboreduct.so: undefined reference to boost::gregorian::greg_month::get_month_map_ptr[abi:cxx11]()' ../libcomboreduct.so: undefined reference to boost::re_detail_106100::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > >, boost::regex_traits<char, boost::cpp_regex_traits > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits > > const&, boost::regex_constants::_match_flags)'
collect2: error: ld returned 1 exit status
moses/comboreduct/main/CMakeFiles/combo-fmt-converter.dir/build.make:102: recipe for target 'moses/comboreduct/main/combo-fmt-converter' failed
make[2]: *** [moses/comboreduct/main/combo-fmt-converter] Error 1
CMakeFiles/Makefile2:528: recipe for target 'moses/comboreduct/main/CMakeFiles/combo-fmt-converter.dir/all' failed
make[1]: *** [moses/comboreduct/main/CMakeFiles/combo-fmt-converter.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2

@linas
Copy link
Member

linas commented May 21, 2018

Using boost 1.58 for the most part. A couple of 1.54s.

What does that mean? I don't think you can mix-n-match different versions of boost; that's just asking for trouble. You also seem to have boost installed in /usr/local, which means that you are not using a distro-supplied version, but a home-built version. That too is just asking for trouble.

moses builds fine, today, in debian stable with boost-1.62 and also on ubuntu 16.04, with whatever version of boost that supplies, on ubuntu 14.04, with whatever version of boost that supplies, and on five-6 year-old versions of redhat, with redhat-supplied boost 1.45 or something like that. Pretty much the whole rainbow has been used in all sorts of settings.

errors like undefined reference to boost::program_options mean exactly what they say: your boost libraries are not supplying the functions that the header files compile down to. This suggests that the boost libraries that you are linking to are not compatible with the boost header files that you compiled with.

@ngeiswei
Copy link
Member

Works for me with 1.55 and 1.62, @iplayfast what is your system? Are you sure all boost libraries are installed?

@issacnitin
Copy link

For me too. Though in mac. I'm getting

dyld: Symbol not found: __ZN5boost15program_options3argB5cxx11E
Referenced from: /usr/local/lib/libmoses_exec.dylib
Expected in: flat namespace
in /usr/local/lib/libmoses_exec.dylib

@linas
Copy link
Member

linas commented Jun 21, 2018

You can explore the contents of a shared lib by saying

nm /where/is/libboost.dylib  | less
nm /where/is/libboost.dylib  | grep program_options

But i general, its bizarre for the compiler to generate symbols that the linker cannot resolve. This is a symptom of headers file versions that don't match library versions, or libraries tht are incomplete or incorrectly built.

@issacnitin
Copy link

I've attached the result of running nm /usr/local/Cellar/boost/1.67.0_1/lib/* | grep program_options > ~/Desktop/output
output.txt

@issacnitin
Copy link

Do we need boost compiled with C++11?

@linas
Copy link
Member

linas commented Jun 21, 2018

Do we need boost compiled with C++11?

Maybe. A safe bet is to use the same compiler as the one one used for moses. In principle, this should not matter, because compilers are supposed to do the "right thing", but boost is kind-of flakey in that way.

cat output.txt | grep oost15program_options3arg
00000000000e65f8 S __ZN5boost15program_options3argE
0000000000036650 S __ZN5boost15program_options3argE
00000000000e65f8 S __ZN5boost15program_options3argE
0000000000036650 S __ZN5boost15program_options3argE

and, indeed, there is no cxx11 variant of the symbol in there. So either its in a different library, or its missing entirely for some reason.

Its possible that moses got compiled with the -cxx11 flag, which added the extra bit to the symbols, but boost was not. This would be a bit of MacOS falkeyness, I guess.

@linas
Copy link
Member

linas commented Jun 22, 2018

Hmm. Apparently, the ABI changed for cxx11, which explains why some symbols now have cxx11 as part of their name: they must be the ones using the new ABI. That would explain a lot, but I did not google this for more info.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants