在增强型单元测试文档中,它特别声明您需要定义BOOST_TEST_DYN_LINK才能与增强型单元测试库链接。
我正在使用以下基本示例:
#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增加到我的include / library路径中,并且代码可以正常编译,但是当我使用Visual Studio编译boost单元测试并尝试运行它们时,出现以下错误:
应用程序无法正确启动(0xc000003b)。
我觉得我只需要指出这个错误消息是多么的模糊和无济于事...
由于某种原因,如果我删除该行#define BOOST_TEST_DYN_LINK
,代码将可以编译并成功运行,但这直接与boost文档所说的相反。
为什么会这样呢?
附加信息:
这就是我正在使用的:
提升v1_63_0
我在运行您的代码时没有任何问题。因此,我怀疑您的情况是否存在构建问题。
我的Boost是通过以下方式构建的(进入Boost源目录之后):
bootstrap.bat
.\b2.exe toolset=msvc -j 2 --with-test release link=shared stage
然后,您需要将stage \ lib下的DLL复制到路径中的某个位置,并将适当的Boost目录添加到您的环境中。对于我的命令行环境,我有(假设您做了类似的事情set BOOST_ROOT=C:\src\boost_1_65_1
):
set INCLUDE=%BOOST_ROOT%;%INCLUDE%
set LIB=%BOOST_ROOT%\stage\lib;%LIB%
然后,我可以成功构建您的测试代码,而不会出现任何问题:
cl /EHsc /MD test.cpp
.\test.exe
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句