C++ Boost.Test-覆盖主节点时未定义符号

C++ Boost.Test-覆盖主节点时未定义符号,c++,boost,boost-test,C++,Boost,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 e

我想在使用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;
}
我还创建了函数
初始化

使用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
我正在单元测试框架库中链接


有人能帮忙解决这个错误吗?

有两种可能的解决方案:

1) 在测试模块中包括
。这可以同时构建测试框架和测试模块

2) 使用
BOOST\u test\u NO\u MAIN
BOOST\u test\u ALTERNATIVE\u INIT\u API
重建测试框架库

根据第二种方案,首选第二种方案