Boost.Test - неопределенный символ при переопределении основного
Я хочу предоставить свою собственную основную функцию при использовании Boost.Test. Поэтому я включил следующие макросы:
#define BOOST_TEST_ALTERNATIVE_INIT_API
#define BOOST_TEST_NO_MAIN
Моя основная функция выглядит так:
int main(int argc, char* argv[])
{
int exitCode = ::boost::unit_test::unit_test_main(&initialise, argc, argv);
return exitCode;
}
Я также создал функцию initialise
,
При сборке на OS X с использованием Xcode 6 сообщается о следующей ошибке:
Undefined symbols for architecture x86_64:
"boost::unit_test::unit_test_main(bool (*)(), int, char**)", referenced from:
_main in main.o
Я делаю ссылку на библиотеку фреймворка модульного тестирования.
Может кто-нибудь, пожалуйста, помогите устранить ошибку?
1 ответ
Решение
Есть два возможных решения:
1) Включить <boost/test/included/unit_test.hpp>
в тестовом модуле. Это приводит к созданию одновременно тестовой среды и тестового модуля.
2) Перестройте библиотеку тестовых фреймворков с помощьюBOOST_TEST_NO_MAIN
а также BOOST_TEST_ALTERNATIVE_INIT_API
,
Согласно документации предпочтительным является второй вариант.