c++ - Boost单元测试框架找不到main函数

标签 c++ unit-testing boost

我有这个最小的单元测试:

#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/

相关文章:

c++ - 树向量化 : gcc optimization flag

c++ - GDB-Python 脚本 : any samples iterating through C/C++ struct fields

c++ - 从 Qt3D PickEvent 获取漫反射贴图 RGB 数据

java - Java中的异常处理是一种测试形式吗?

java - 如何将传递给 Class<T> 参数的 null 与 Mockito 匹配

c++ - 检查类型是否可以作为 boost::lexical_cast<string> 的参数

c++ - KEIL错误: no instance of overloaded function “std::transform” matches the argument list

c# - 在 C# 中,是否可以模拟出 IMessageReceiver 和相关类进行单元测试?

使用 Boost Regex 的 C++ 正则表达式

c++ - 如何制作 io_service.run();阻塞