【发布时间】:2014-10-16 13:39:24
【问题描述】:
我正在使用 QT creator 开发一个 boost 单元测试框架项目。我写了一个小测试程序并试图链接libboost_unit_test_framework-vc100-mt-gd-1_56.lib。该库位于指定路径。但程序无法编译,给出上述链接错误。
我在网上搜索发现,错误应该是#define BOOST_ALL_NO_LIB。但是,我得到以下错误:
main.obj:-1: error: LNK2019: unresolved external symbol "class boost::unit_test::test_suite * __cdecl init_unit_test_suite(int,char * * const)" (?init_unit_test_suite@@YAPAVtest_suite@unit_test@boost@@HQAPAD@Z) referenced in function _main
上述函数是libboost_unit_test_framework-vc100-mt-gd-1_56.lib的一部分。
我使用 VS 2010 和相同的 boost 库编写了相同的单元测试。该程序可以正常运行并具有预期的行为。
在 QT 上使用 boost 可能会出现什么问题?
【问题讨论】:
-
我刚刚遇到了同样的问题。你得到答案了吗?
-
如果 Qt Creator 使用 MinGW 作为编译器......这就是问题所在。 MinGW 不适用于 .lib 文件,仅适用于 .a 文件。在这种情况下,您需要使用 MinGW 编译 Boost 以生成 .a 文件。
-
我该怎么做? @karlphillip
-
@karlphillip MinGW 与
*.lib(proof) 完美配合。看error: LNK2019我可以说反正不是MinGW。 -
@BurninatorDor 向我们展示您的项目文件和一些代码
标签: c++ qt boost qt-creator qt5