Project

General

Profile

Actions

Bug #4893

open

Compilation failure against libboost-regex

Added by Vincenzo Romano almost 8 years ago. Updated almost 8 years ago.

Status:
Feedback
Priority:
High
Assignee:
Target version:
Start date:
05/03/2016
Due date:
% Done:

0%

Estimated time:
1:00 h

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.

Actions #1

Updated by Koen Deforche almost 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

Actions #2

Updated by Koen Deforche almost 8 years ago

  • Assignee set to Koen Deforche
Actions #3

Updated by Vincenzo Romano almost 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 .

Actions

Also available in: Atom PDF