10

我正在尝试使用 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()

据我了解,我不需要放置 main 或任何东西,因为 boost 会自己处理。但是 Visual Studio 不断给我一个“必须定义入口点”错误。我需要手动添加指向静态库的链接吗?我正在编译为标准的 .exe 控制台应用程序。

4

5 回答 5

19

将 /SUBSYSTEM:CONSOLE 添加到链接器标志。在项目设置中,这是在 Linker->System 页面上。您可以将 boost 用作动态或静态库。

于 2010-03-19T20:34:40.993 回答
10

我在 VS2010 上遇到了这个问题,解决方案是将项目的“配置属性 -> 链接器 -> 高级 -> 入口点”设置为“主”。

于 2011-07-22T12:14:10.087 回答
1

我的代码类似,并且工作正常。我能看到的唯一区别是我根本没有定义BOOST_AUTO_TEST_MAIN。据我所知,BOOST_TEST_MODULE告诉它在哪里定义。main

于 2010-01-15T04:34:47.843 回答
1

我将“配置属性->链接器->高级->入口点”设置为“mainCRTStartup”,这对我有用。(在我的特定构建配置中,我正在静态链接 boost 库)。

于 2013-08-06T08:11:56.163 回答
0

最后,让它工作的方法是使用 boost.test 作为动态库而不是静态库。

于 2010-01-24T02:35:34.827 回答