Я пытаюсь создать модульный тест с повышением, но компоновщик жалуется на отсутствующую функцию. Возьмите этот скелетный код
#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();
Но это не удается с
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
libboost_unit_test_framework
найден моей командой компоновщика:
g++-5 --std=c++14 funcopstest.o -L/usr/local/lib -lboost_unit_test_framework -o test_funcops
потому что, когда я убираю -lboost_unit_test_framework
, я получаю массу неопределенных ссылок вместо одной. Boost был установлен через brew
из исходников в режиме c++11. Я пытался скомпилировать с каждым -fabi-version=[0-8]
, но ничего не изменилось.
Кто-нибудь знает, что происходит?