Getting stuff to build with conan

From Just in Time

Revision as of 21:55, 17 March 2018 by Danny (talk | contribs) (Created page with "==Building against boost== Using package e.g. from '''Boost/1.64.0@conan/stable''' from Remote: conan-community= ===ABI Ch...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Building against boost

Using package e.g. from Boost/1.64.0@conan/stable from Remote: conan-community=

ABI Changes

Symptom: linker errors, specifically for functions that have std::string arguments or return types. This is due to the fact that gcc (as of gcc5?) defines the libstdc++11 standard classes to be in a namespace such as std::__cxx11:: With default configuration conan will define _GLIBCXX_USE_CXX11_ABI=0 when building boost, which will use the older libstdc++. This conflicts with regular builds on gcc5+.

Either define the following in CMakeLists.txt (not recommended) add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0) or use settings.compiler.libcxx = libstdc++11, either in ~/.conan/conan.conf or on the command line (-s)