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?