0

我正在尝试使用 Windows 10 上的 boost 库编写一些代码。为了构建应用程序,我选择了与 MSYS2 一起安装的 mingw64。

下载并安装boost库(1.76)后,我尝试了这个示例代码(https://www.boost.org/doc/libs/1_76_0/more/getting_started/windows.html#build-a-simple-program-using -boost),我使用以下命令构建得很好:

g++ .\example.cpp -o test.exe -IC:\Users\Benelli\BoostLib\boost_1_76_0\boost_1_76_0

此示例适用于我的系统,因此我假设 boost 库已正确安装,尽管我没有构建它们,但我知道 boost.test 库可以用作“仅标题”。

我按照本教程编写了一个简单的代码:https ://www.boost.org/doc/libs/1_76_0/more/getting_started/windows.html#build-a-simple-program-using-boost 。

#define BOOST_TEST_MODULE const_string test
#include <boost/test/unit_test.hpp>

这段代码无法编译,我真的不明白为什么。boost.test 库真的是“header_only”吗?我用来构建它的命令是:

g++ .\boost_test_example.cpp -o boost_test.exe -IC:\Users\Benelli\BoostLib\boost_1_76_0\boost_1_76_0

这给出了这个错误信息: 错误信息

4

1 回答 1

1

仅适用于标题:

我认为您需要boost/test/included/unit_test.hpp按照https://www.boost.org/doc/libs/1_69_0/libs/test/doc/html/boost_test/adv_scenarios/single_header_customizations/multiple_translation_units.html上的 boost 文档使用

我有一个类似的 winMain 错误,必须将 BOOST_TEST_DYN_LINK 定义到代码顶部(当我链接库时)。

#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MODULE const_string test
#include <boost/test/unit_test.hpp>

当不将标头仅用于未定义的引用时,链接与升压测试库,例如-LC:/msys64/mingw64/lib -lboost_unit_test_framework-mt.

于 2021-08-01T17:49:38.123 回答