【发布时间】:2017-08-25 11:20:50
【问题描述】:
在 boost 单元测试文档中,它特别指出您需要定义 BOOST_TEST_DYN_LINK 才能与 boost 单元测试库链接。
我正在使用这个基本示例:
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MODULE test_module1
// This header is for the dynamic library, not the header only one
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_CASE(test1) {
BOOST_CHECK(true);
}
我已将 boost 添加到我的包含/库路径并且代码编译正常,但是当我使用 Visual Studio 编译 boost 单元测试并尝试运行它们时,我收到以下错误:
应用程序无法正确启动 (0xc000003b)。
我觉得我只需要指出这个错误消息是多么的模糊和没有帮助......
由于某种原因,如果我删除 #define BOOST_TEST_DYN_LINK 行,代码将编译并成功运行,但这与 boost 文档所说的直接背道而驰。
为什么会这样?
其他信息:
这是我正在使用的:
提升 v1_63_0
【问题讨论】:
-
不要将错误或信息发布为屏幕截图。而是将它们作为文本发布。您的屏幕截图显示您使用的是 VS14,但您使用 VS13 进行了标记。也不知道你为什么提到 IDE 版本。 IDE != 编译器。提及 MSVC 版本(VS 附带的 C/C++ 编译器)会更有帮助。
-
哎呀!我标记了不正确的版本。我会解决的。
-
而且MSVC版本是14.0
-
您可能需要提供更多信息。哪个版本的 Windows?微软直到 Windows 10 才提供 C++ 的 Dynamic Initialization and Destruction with Concurrency (aka Magic Statics),它需要 Visual Studio 2017。Windows 或 Visual Studio 的较小版本将遇到无法解释的问题启动问题如果 i> 你不走运。经验之谈...
-
@jww 我使用的是 Windows 7 Professional SP1 x64
标签: c++ boost visual-studio-2015 dynamic-linking boost-test