Bug #4893
Compilation failure against libboost-regex
0%
Description
It's very likely due to link options in the wrong order and/or position.
I am not a cmake pro so it's hard for me to check/fix.
This is what I get during the "make" execution:
Built target wt Built target wttest Linking CXX executable test ../src/libwt.so.3.3.5: undefined reference to `boost::re_detail::cpp_regex_traits_implementation<char>::transform[abi:cxx11](char const*, char const*) const' ../src/libwt.so.3.3.5: undefined reference to `boost::re_detail::cpp_regex_traits_implementation<char>::transform_primary[abi:cxx11](char const*, char const*) const' collect2: error: ld returned 1 exit status test/CMakeFiles/test.dir/build.make:889: recipe for target 'test/test' failed make[2]: *** [test/test] Error 1 CMakeFiles/Makefile2:328: recipe for target 'test/CMakeFiles/test.dir/all' failed make[1]: *** [test/CMakeFiles/test.dir/all] Error 2 Makefile:127: recipe for target 'all' failed make: *** [all] Error 2
Of course, the library is installed.
Updated by Koen Deforche over 6 years ago
- Status changed from New to Feedback
Hey,
Perhaps you're mixing a C+11 Wt build with a C03 boost build. Increasingly, this is causing linking errors with newer compilers as the ABI is diverging in more and more places. To avoid any issues you should make sure you build everything with the same target (C+11).
Koen
Updated by Vincenzo Romano over 6 years ago
Koen Deforche wrote:
Hey,
Perhaps you're mixing a C+11 Wt build with a C03 boost build. Increasingly, this is causing linking errors with newer compilers as the ABI is diverging in more and more places. To avoid any issues you should make sure you build everything with the same target (C+11).
Koen
I am using Ubuntu 16.04 which comes with Boost v1.58.
I have no idea how that got compiled.
I can see in the /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.58.0 files these strings, though:
libgcc_s.so.1
GCC_3.0
GLIBCXX_3.4.20
GLIBCXX_3.4.11
GLIBCXX_3.4.9
CXXABI_1.3
GLIBCXX_3.4.15
GLIBCXX_3.4.21
GLIBCXX_3.4
But I don't think GCCv3 has been used for libbost, though.
Anyway, in Ubuntu GCC comes as either v5.3.1 or as v6.0.0 .