我有这个最小的单元测试:
#include <boost/test/unit_test.hpp>
#define BOOST_TEST_MODULE a_test
struct Color{};
BOOST_AUTO_TEST_CASE(color_test)
{
BOOST_CHECK(std::is_pod<Color>());
}
但是当我像这样编译时
clang -std=c++14 -lc++ -lboost_unit_test_framework a_test.cc -o main
我得到一个未定义的 _main 符号。 -lboost_unit_test_framework
使用共享库。
我以前使用过这个库,我记得自己不必声明主函数,因为它会自动运行我定义的几个 BOOST_AUTO_TEST_CASE
。
我做错了什么?
最佳答案
动态链接 Boost.Test 时,需要定义 BOOST_TEST_DYN_LINK
( see boost docs here )。
您可能还需要链接 boost_test_exec_monitor
。
此外,所有配置宏都需要在包含库头之前定义才能生效。
关于c++ - Boost单元测试框架找不到main函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36670832/