2015-09-02 36 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

当使用Xcode的6报告下列错误在OS X内置:

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_MAINBOOST_TEST_ALTERNATIVE_INIT_API重建测试框架库。

根据documentation第二个选项是首选。