使用QT创建者增加1.56,“LNK1104:无法打开文件'libboost_unit_test_framework-vc100-mt-gd-1_56.lib'”

时间:2014-10-16 13:39:24

标签: c++ qt boost qt-creator qt5

我正在使用QT创建器开发一个增强单元测试框架项目。我写了一个小测试程序并试图链接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会出现什么问题?

1 个答案:

答案 0 :(得分:0)

您缺少测试模块初始化函数。在包含UTF标头之前,您是否定义了BOOST_TEST_MAINBOOST_TEST_MODULE

  

要自动生成空的测试模块初始化函数,您需要在包含boost / test / unit_test.hpp标头之前定义BOOST_TEST_MAIN。忽略此定义的值。或者,您可以将宏BOOST_TEST_MODULE定义为等于任何字符串(不一定在引号中)。此宏导致与BOOST_TEST_MAIN相同的结果,此外宏值将成为主测试套件的名称。

     

对于由多个源文件组成的测试模块,您只需在单个测试文件中定义这些标志。否则,您最终会得到初始化函数的多个实例。

此处有更多信息:http://www.boost.org/doc/libs/1_57_0/libs/test/doc/html/utf/user-guide/initialization.html