我正在尝试使用Boost Test为我的代码添加一些非常需要的单元测试。但是我似乎无法让它发挥作用。现在我有以下代码
#include <Drawing.h>
#define BOOST_AUTO_TEST_MAIN
#define BOOST_TEST_MODULE DrawingModelTests
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_SUITE(DrawingModelTests)
BOOST_AUTO_TEST_CASE ( DrawingConstructorTest)
{
Drawing * drawing = new Drawing;
delete drawing;
}
BOOST_AUTO_TEST_SUITE_END()
根据我的理解,我不需要放一个主要或任何东西,因为助推器会自己处理它。但是,Visual Studio不断给我一个“必须定义的入口点”错误。我是否需要手动添加静态库的链接?我正在编译为标准的.exe控制台应用程序。
答案 0 :(得分:17)
将/ SUBSYSTEM:CONSOLE添加到链接器标志。在项目设置中,这是在Linker-&gt;系统页面上。您可以将boost用作动态库或静态库。
答案 1 :(得分:9)
我在VS2010遇到了这个问题,解决方案是设置'配置属性 - &gt;链接器 - &gt;高级 - &gt;项目的入口点'到'主要'。
答案 2 :(得分:1)
我的代码很相似,工作正常。我能看到的唯一区别是我根本没有定义BOOST_AUTO_TEST_MAIN
。 BOOST_TEST_MODULE
告诉它在哪里定义main
,据我所知。
答案 3 :(得分:1)
我设置'配置属性 - &gt;链接器 - &gt;高级 - &gt;入口点'到'mainCRTStartup',这对我有用。 (在我的特定构建配置中,我静态链接了boost库)。
答案 4 :(得分:0)
最后,使其工作的方法是使用boost.test作为动态库而不是静态库。