2015-09-02 35 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第二個選項是首選。