QT4的FindDialog例子在VC6中编译时提示链接错误的一种直观的解决办法(包含过程思路)

5 篇文章 0 订阅
3 篇文章 0 订阅

前沿:

  根据《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没有较多概念、经历的首次入门者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值