Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Boost linking error undefined reference to GLIBCXX_3.4

Tags:

c++

boost

cmake

I'm trying to link with boost, using clang under ubuntu. And I get following error:

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libboost_filesystem.a(operations.o): undefined reference to symbol '_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCXX_3.4'
/usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I've added find_package(Boost COMPONENTS file_system, system) to cmake. Any idea what may cause this error?

like image 821
Michał Dębski Avatar asked Dec 20 '13 09:12

Michał Dębski


1 Answers

This error was because Boost was build using gcc standard library libstdc++ and I was compiling using clang libc++.

Previously I was using Boost downloaded with apt-get. Downloading sources from boost.org and compiling by hand using clang and its standard library fixed this problem.

like image 192
Michał Dębski Avatar answered Oct 24 '22 10:10

Michał Dębski