Boost.Test - 覆盖 main 时未定义的符号
Boost.Test - Undefined symbol when overriding main
我想在使用 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) 在测试模块中包含 <boost/test/included/unit_test.hpp>
。这具有同时构建测试框架和测试模块的效果。
2) 用BOOST_TEST_NO_MAIN
和BOOST_TEST_ALTERNATIVE_INIT_API
重建测试框架库。
根据documentation,第二个选项是首选。
我想在使用 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) 在测试模块中包含 <boost/test/included/unit_test.hpp>
。这具有同时构建测试框架和测试模块的效果。
2) 用BOOST_TEST_NO_MAIN
和BOOST_TEST_ALTERNATIVE_INIT_API
重建测试框架库。
根据documentation,第二个选项是首选。