2012年3月8日星期四

Qt 4.8.0中QAxWidget代码编译不通过的解决办法

    昨天在QtCN上看到Qt的4.8.0版本已发布的消息,决定升级之。QTSDK的升级工具照旧极度不给力(下载太慢了),于是用迅雷以10M/S的速度下载完成后离线安装。安装过程一切正常,但是编译测试以前写的一个QAxWidget项目时出现错误,提示C:\QtSDK\Desktop\Qt\4.8.0\mingw\include\ActiveQt\qaxwidget.h这个文件中所包含的文件不存在,其内容只有一句:#include "../../src/activeqt/container/qaxwidget.h"。其需要在C:\QtSDK\Desktop\Qt\4.8.0\mingw目录下存在src子目录,但是我的Qt安装后并没有这个目录,而4.7.4版本就没有这个问题。

  •    通过SDK升级工具下载安装了QT Sources源码包。此时在QtSDK目录下多出来了一个QtSources文件夹,里面有我们所需的src目录。将其剪切至上述目录后,这回可以编译了。

   但是链接的时候却提示cannot find -lQAxContainerd。大意是在C:\QtSDK\Desktop\Qt\4.8.0\mingw\lib目录下缺少libQAxContainerd.a这个库文件。

  •  因此用QtCreator打开C:\QtSDK\Desktop\Qt\4.8.0\mingw\src\activeqt\activeqt.pro工程,以Debug方式编译后即可生成libQAxContainerd.a库文件(以Release方式生成libQAxContainer.a),复制到C:\QtSDK\Desktop\Qt\4.8.0\mingw\lib,再次编译却出现"Undefiened reference to __SomeFunc@8",这回无解了。

   正在悲伤之际,突然发现了这篇文章,简直如获至宝。大意是说4.8.0有问题,不能使用MingW编译,要使用VS才行。

  • 幸亏安装了VS2010,在左下角点击“计算机”图标后选择VS-调试后再次编译,终于搞定。


   感谢国家,感谢党,感谢谷歌。

没有评论:

发表评论