• 10393阅读
  • 2回复

VS2005配制QT4.5.2终级总结。 [复制链接]

上一主题 下一主题
离线lsjwq
 

只看楼主 正序阅读 楼主  发表于: 2010-01-14
— 本帖被 XChinux 从 Qt for Linux/X11 移动到本区(2010-02-08) —
最近对QT非常感兴趣,一个跨平台的编程语言,可以一次编写,到处编译,但是对环境的搭建好像比较费劲,我是这样感觉,不知道其他同志们是什么感触。
ubuntu下配制QT开发环境,还算是顺利。原来有一定的RH9的使用经验,上手还是很快的。但是在WINDOWS下配制QT的时候到是出现了一些问题,一共编译了3次,第2次编译成功了,但是为了研究问题所在,所以进行第3次编译,这个过程不是很麻烦,不过时间很长,有可能和电脑硬件配制有关系吧。
下面介绍一下配制环境的情况:
1 准备工具
(1)   Microsoft Visual Studio 2005 TeamSuit 最好有SP1补丁。
(2)   qt-sdk-win-opensource-2009.03.exe  这是QT..版本。
(3)   qt-vsintegration-1.4.2.exe 这是QTVS插件,当然你也可以用qt-vs-addin-1.1.2.exe,但是这个好像只支持英文版本的VS
准备工作就到这里了,现在开始吧,祝兄弟们一切顺利!!
 
2 安装工作
  (1)安装VS2005,SP1补丁,这个对于大家来说很容易了。需要就是时间。
(2)安装qt-sdk-win-opensource-2009.03.exe,我的安装目录是D:\QT-4.5.2\Qt,但是在这个目录下还有一个qt目录,这才是我们后边需要工作的目录。
(3)安装qt-vsintegration-1.4.2.exe,安装后,在VS的菜单栏上会有一个QT菜单,在“工具”-》“选项”里也有一个QT选项。这是我们后边要设置的。
 

3 配制工作
(1)   给电脑配制环境变量,在系统变量里(我的电脑->属性->高级)设置如下变量:
PATH:
D:\QT-4.5.2\Qt\qt\bin;D:\QT-4.5.2\Qt\bin;D:\QT-4.5.2\Qt\mingw\bin;D:\QT-4.5.2\Qt\qt\lib
 

LIB:
D:\QT-4.5.2\Qt\qt\lib
 

INCLUDE:
D:\QT-4.5.2\Qt\qt\include;D:\QT-4.5.2\Qt\mingw\include
 

QMAKESPEC:
win32-msvc2005
 

QTDIR:
D:\QT-4.5.2\Qt\qt
 

这里有重复设置和冗余设置,但是要保证一次性配制成功,最好把这些设置上,这只是个人意见,根据自己的实际情况,可以自行选择。但是qt目录下的binincludelibQMAKESPECQTDIR,估计是必须设置的。
 

(2)   VS的“工具”-》“选项”-》“QT-》“Builds”设置如下目录:
 

   D:\QT-4.5.2\Qt\qt  重要
   D:\QT-4.5.2\Qt\qt\bin
D:\QT-4.5.2\Qt\qt\include
D:\QT-4.5.2\Qt\qt\lib
 

后三个有可能不需要,大家可以试一下,我实在不想试了。
 

4 编译源码工作
在编译源码之前,需要向兄弟们说明几个问题,也是自己在这个过程遇到的。
AXP下的“命令提示符”,也就是CMD,就没有“nmake”命令的。
B:在编译过程中,有可能会遇到如下问题:
 QtWebKitd4.lib 无法解析的外部符号
 QNetworkReplyHandler.obj : error LNK2001: unresolved external symbol “public: vi
rtual struct QMetaObject const * __thiscall WebCore::FormDataIODevice::metaObjec
t(void)const ” (?metaObject@FormDataIODevice@WebCore@@UBEPBUQMetaObject@@XZ)
QNetworkReplyHandler.obj : error LNK2001: unresolved external symbol “public: vi
rtual void * __thiscall WebCore::FormDataIODevice::qt_metacast(char const *)” (?
qt_metacast@FormDataIODevice@WebCore@@UAEPAXPBD@Z)
 

这是因为src/3rdparty/webkit/WebCore/tmp/moc/{debug,release}_shared/mocinclude.tmp临时文件造成的,把这两目录下的该文件删除即可,在编译的时候会自动生成该文件。在安装完成后,就有这两个文件,在编译之前见意删除掉。
 

C:进入到%QTDIR%\mkspecs\win32-msvc2005\目录下,打开qmake.conf文件找到19行的QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-,删除后面的-Zc:wchar_t-选项,主要是为了保持标准兼容性以及和其他代码的兼容性,否则会出现Qt4中采用了wchar_t的函数不能够接受没有-Zc:wchar_t选项下的wchar_t类型;这一步,我并没有做,也是偶尔在网上遇到的。大家可以参考。
 

  下面就开始编译吧。
(1)   VS的“Visual Studio 2005 命令提示”工具。进入“D:\QT-4.5.2\Qt\qt”目录。
(2)   输入配制命令,如下:
               A:configure -debug-and-release -no-stl -no-sql-sqlite -qt-libjpeg -qt-gif -platform win32-msvc2005
               B:configure -debug-and-release -platform win32-msvc2005 -no-stl -no-dsp -vcproj -no-phonon
               C:configure  -platform win32-msvc2005
 

我用的是C号命令。大家可以看configure的帮助,不需要的可以不编译。如果初学者建议用C号命令。回车后需要一段时间,大家可以喝怀茶。
 

(3)   接下来输入“nmake”,回车。这步需要漫长的过程。请耐心等待。相信大家对以上进行了设置,这步只是等待,不会有什么问题的。
(4)   编译完成后,大家可以执行nmake clean清除编译的中间文件,nmake confclean清除配制文件。但是我在用nmake confclean命令后,用VS建立QT项目,出现问题。用nmake clean这个命令是绝对没有问题的。如果兄弟的空间比较富裕,完全可以不执行这些操作。

5 完成.大家可以建立QT GUI项目了。
 

革命尚未成功,同志仍需努力。
 

网名:唯笑志在
Q QGG搜吧
   
[ 此帖被lsjwq在2010-01-14 21:09重新编辑 ]
离线iwillbeback
只看该作者 2楼 发表于: 2010-08-02
恩,写的很好,不过这个是在Windows环境中,
我最近在实践在WinCE环境下的,
这个文章值得收藏和参考
谢谢
离线wd007

只看该作者 1楼 发表于: 2010-01-18
这个写的还是不错的,我也有类似的经历。
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
快速回复
限100 字节
 
上一个 下一个