2015-09-02 3 views
0

Я хочу предоставить свою собственную основную функцию при использовании 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 

Я связывающую в тестовой рамочный блок библиотеки.

Может кто-то может помочь устранить эту ошибку?

ответ

0

Есть два возможных решения:

1) Включить в тестовом модуле <boost/test/included/unit_test.hpp>. Это приводит к одновременному созданию как тестовой среды, так и тестового модуля.

2) Перестройте библиотеку тестовых рамок с помощью BOOST_TEST_NO_MAIN и BOOST_TEST_ALTERNATIVE_INIT_API.

В соответствии с documentation предпочтительна вторая опция.

Смежные вопросы