在VS2010中开发Qt程序使用QTest遇到error LNK2019
Qt包含很多模块(Modules),比如常用的Core library、GUI library、SQL library、OpenGL library、Script library、XML library等,如下图所示Qt4.8所包含的模块:
在编程过程中使用到QTest类的qWait方法,先不说此类的作用,直说编译出现的问题,编译出现如下错误提示:
error LNK2019: 无法解析的外部符号 "void __cdecl QTest::qSleep(int)" (),该符号在函数 "void __cdecl QTest::qWait(int)" () 中被引用
1>E:\QtProject\Progress\Win32\Debug\\Progress.exe : fatal error LNK1120: 1 个无法解析的外部命令
1>E:\QtProject\Progress\Win32\Debug\\Progress.exe : fatal error LNK1120: 1 个无法解析的外部命令
但是QTest的头文件我已经包含,说明相关的库没有被引进来。
解决办法:在VS2012中右键工程名,选择“Qt Project Settings”,就会弹出如上图所示的“Qt Project Settings”的对话框,选择“Modules”选项卡,勾选“Test library”,然后重新编译,问题就解决了。
同样道理,如果想开发XML、OpenGL、SQL等的程序就要先将相关库包含进来!