2016-08-22 4 views
1

При установке Wangle у меня возникла следующая проблема. Я уже установил Boost, и я не знаю, почему.Wangle: /usr/local/lib/libfolly.so: неопределенная ссылка на boost :: re_detail_106000

[ 65%] Built target wangle 
Linking CXX executable bin/AcceptorTest 
/usr/bin/ld: warning: libboost_filesystem.so.1.54.0, needed by /usr/local/lib/libfolly.so, may conflict with libboost_filesystem.so.1.61.0 
/usr/bin/ld: warning: libboost_system.so.1.54.0, needed by /usr/local/lib/libfolly.so, may conflict with libboost_system.so.1.61.0 
/usr/local/lib/libfolly.so: undefined reference to `boost::re_detail_106000::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)' 
/usr/local/lib/libfolly.so: undefined reference to `boost::re_detail_106000::get_mem_block()' 
/usr/local/lib/libfolly.so: undefined reference to `boost::re_detail_106000::cpp_regex_traits_implementation<char>::transform_primary(char const*, char const*) const' 
/usr/local/lib/libfolly.so: undefined reference to `boost::re_detail_106000::verify_options(unsigned int, boost::regex_constants::_match_flags)' 
/usr/local/lib/libfolly.so: undefined reference to `boost::re_detail_106000::get_default_error_string(boost::regex_constants::error_type)' 
/usr/local/lib/libfolly.so: undefined reference to `boost::re_detail_106000::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)' 
/usr/local/lib/libfolly.so: undefined reference to `boost::re_detail_106000::put_mem_block(void*)' 
/usr/local/lib/libfolly.so: undefined reference to `boost::re_detail_106000::raise_runtime_error(std::runtime_error const&)' 
/usr/local/lib/libfolly.so: undefined reference to `boost::re_detail_106000::cpp_regex_traits_implementation<char>::transform(char const*, char const*) const' 
collect2: error: ld returned 1 exit status 

make[2]: *** [bin/AcceptorTest] Error 1 

make[1]: *** [CMakeFiles/AcceptorTest.dir/all] Error 2 

make: *** [all] Error 2 

enter image description here

+0

Вы связывая его с 'boost_regex-mt'? – Arunmu

+0

Похоже, вы связываетесь с 1.61, но 'libfolly' был скомпилирован против 1.54 (или наоборот). – isanae

+0

Итак, вы в конечном итоге решили это? – einpoklum

ответ

0

Использование лязга вместо GCC, удаляя атомную проверку в CMakeList.txt и отключить тесты, сделанные Wangle построить для меня на арке.

В настоящее время он не будет строиться с помощью GCC 7 (Issue), а GCC 5 бросил аналогичную проблему для вас.

CC=clang CXX=clang cmake . -DBUILD_TEST=0

(код выше не включает атомный чек вы должны удалить в CMakeList.txt сам! Просто поиск по атомному.)

Смежные вопросы