Bug #4893
openCompilation 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 8 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 8 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 .