vendredi 5 juin 2015

Boost unit test link error -- abi mismatch?

I'm trying to build a unit test with boost, but the linker complains about a missing function. Take this skeleton code

#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MAIN
#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_SUITE(TestFuncOps);

BOOST_AUTO_TEST_CASE(CopyConstructor)
{
}    

BOOST_AUTO_TEST_SUITE_END();

But it fails with

Undefined symbols for architecture x86_64:
  "boost::unit_test::ut_detail::normalize_test_case_name[abi:cxx11](boost::unit_test::basic_cstring<char const>)", referenced from:
      __GLOBAL__sub_I_funcopstest.cc in funcopstest.o

The libboost_unit_test_framework is found by my linker command:

g++-5 --std=c++14 funcopstest.o -L/usr/local/lib -lboost_unit_test_framework -o test_funcops

because when take away the -lboost_unit_test_framework, I get a ton of undefined references instead of only one. Boost was installed via brew from source using c++11 mode. I have tried to compile with every -fabi-version=[0-8] but nothing changed.

Does anybody have a clue what's going on?

Aucun commentaire:

Enregistrer un commentaire