【问题标题】:Using boost test with Visual Studio在 Visual Studio 中使用 boost 测试
【发布时间】:2010-01-15 03:00: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 控制台应用程序。

【问题讨论】:

    标签: c++ visual-studio boost-test


    【解决方案1】:

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

    【讨论】:

    • 我有同样的问题,使用谷歌测试库,并链接到 gtest_main.lib。这也解决了这个问题。
    【解决方案2】:

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

    【讨论】:

    • 我不敢相信我终于可以回答这个问题了^^。谢谢!
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-12-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多