昨天在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-调试后再次编译,终于搞定。
感谢国家,感谢党,感谢谷歌。