前沿:
根据《QT中文手册》在测试运行FindDialog的例子时,果不其然出现了4个链接错误。
解决过程:
1、刚开始认为既然是链接错误,那么应该是没有链接到对应的函数体,一般来说可能是对应的Lib库文件没有链接。
检查后发现在setting中已经链接了QtGuid4.lib。
2、考虑可能是需要重新编译一次QT库,于是在Qt4主目录下运行qmake,nmake,结果nmake出现错误提示:
fatal error U1077: 'link' : return code '0x1'
Stop.
NMAKE : fatal error U1077: '"D:\Program Files\Microsoft Visual Studio\VC98\Bin\NMAKE.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
认为应该是vc的link路径没有被识别,寻找环境变量,看看修改一下是否可以。
经过几次调整后,仍然不行,那么只好去网上寻找。
3、网上都是提示“需要重新运行qmake,更新makefile,然后编译程序”。继续查看《QT中文手册》,发现如下描述:
“使用了Q_OBJECT 宏的类必须运行moc。如果使用qmake,那么makefile 里自动包含相关的规则。
如果忘记了运行moc,就会发生连接错误。”
网上也给出了一堆解决方法:运行moc finddialog.h -o moc_finddialog.cpp;
在vc6的工程setting中进行Build定制:moc finddialog.h -o moc_finddialog.cpp;
qmake -project; qmake; nmake
但是,不知道究竟该怎么qmake或者moc,在cmd敲了好多遍,然后编译的时候仍然不行。build定制中也不能肯定命令是否正确。
4、最后在一次胡乱运行moc finddialog.h -o moc_finddialog.cpp命令之后,发现主目录下多了一个moc_finddialog.cpp文件,惊喜之余将其
通过vc6的Add Files to Project命令将其加入工程,编译后竟然可以了。
最终解决办法:
A、按照《QT中文手册》输入组织finddialog相关代码。
B、用cmd在主目录下运行moc finddialog.h -o moc_finddialog.cpp
C、在VC6工程中将moc_finddialog.cpp文件添加测试工程。
D、重新编译即可。
弯路曲曲:
1、主要是对QT开发过程不熟悉,也不知道moc为何物。
2、基础不同,需要不同的文档,最好是图文并茂step by step形式的。
本文档适合人群:
对QT没有较多概念、经历的首次入门者。