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,

Согласно документации предпочтительным является второй вариант.

Другие вопросы по тегам