分类: C/C++
2011-02-20 22:05:48
既然QT都使用了自己的编译版本,那么QT Creator 也是要编译一下的,就不要使用它QT已经编译好的版本。对于QT下使用的一些工具(jom),也最好自己编译后再使用,我的使用环境是 Windows 7 64位 企业版,VS2010 中文专业版。
QT作为linux下开发的系统,虽然现在也在兼容windows,但是也有一些问题,在编译过程中碰到的最大的问题是目录名的问题,QT本身不支持汉语目录名和带空格的目录名,就算源程序和编译目录满足这个条件,然而QT在编译过程中,会大量使用TEMP文件,Window 7系统的TEMP目录在C:\Users\[用户名]\AppData\Local\Temp下,如果当前用户是中文的名,在QT编译过程中就是致命的。最好的解决办法就是吧window的TEMP目录设置在根目录下我就是设置在C:\TEMP 。(Windows下设置用户的环境变量,把里面的TEMP 和TMP 全部设置成C:\TEMP)
QT编译过程会使用比较大的硬盘空间,大约占有5-6G。
编译QT 4.7.1过程:
1 安装好VS2010 ,下载好qt-everywhere-opensource-src-4.7.1.zip 解压到相应的目录。配置好临时目录。
2 建立好4.7.1的安装目录,C:/QT/4.7.1,运行【Visual Studio 命令提示(2010)】, 俺没有使用64位那个,明显不太靠谱,就没有试了,(主要是俺的机器太烂,编译一次时间太长)虽然有linux下的64 位QT。
在qt-everywhere-opensource-src-4.7.1目录下 运行。
configure -opensource -developer-build -platform win32-msvc2010 ^
-shared -debug-and-release -fast -no-qt3support ^
-plugin-sql-sqlite -plugin-sql-odbc ^
-qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg ^
-phonon -webkit -prefix C:/QT/4.7.1
-prefix 指定的就是安装目录
-platform 选择编译平台
-shared -static 就是选择编译静态版
-debug-and-release 编译目标 这个是 debug 和 release都编译
-no-qt3support 虽然新开发QT的不会使用到QT3,一般情况下还是选上吧,因为难免有些需要编译的QT工具需要它。
其它的选项就是选择编译什么QT安装包
-nomake examples -nomake docs -nomake demos 就是是不是编译文档 和 例子,编译例子的时间很长,一般可以不编译。
如果编译过程需要使用第三方的包,可以用 -I 和-L 来增加。
静态版
configure -opensource -developer-build -platform win32-msvc2010 ^
-static -release -fast -no-qt3support ^
-plugin-sql-sqlite -plugin-sql-odbc ^
-qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg ^
-phonon -webkit -prefix C:/QT/4.7.1/static ^
-nomake examples -nomake docs -nomake demos
3 运行完configure后运行
namke
nmake install
找不到 win32-msvc2010,把qt-everywhere-opensource-src-4.7.1\mkspecs目录拷贝的安装目录就可以了。
如果你觉得占用空间太大了,运行一下 nmake clean,就把编译过程中的中间文件给删除了。
4 编译安装完了以后 设置好 QTDIR的环境变量,还有吧 %QTDIR%/bin 加入到PATH就OK了。
打开qt4 安装目录 到mkspecs\default,目录下编辑qmake.conf,到最后一行,改成 QMAKESPEC_ORIGINAL=C:/Qt/4.7.1/mkspecs/win32-msvc2010,就好了。
一切正常的话,编译好的QT Designer、help等一些工具都是中文的。
下来开始编译QT Creator
1 下载安装32位Debugging Tools for Windows (x86),如果不先装这个 creator编译的时候会不编译cdb的包,这样最后的Creator就debug设置会没有cdb这个设置页了。
2 下载qt-creator-2.0.1-src.zip源代码,解压到qt-creator-2.0.1-src目录
3 建立安装目录,(俺的是C:\Qt\qtc),运行【Visual Studio 命令提示(2010)】,在安装目录下,(C:\Qt\qtc)输入命令。
qmake CONFIG+=release “QT_PRIVATE_HEADERS=C:/QT/qt-everywhere-opensource-src-4.7.1/include” C:\Qt\qtc\qt-creator-2.0.1-src\qtcreator.pro
nmake
nmake INSTALL_ROOT=”C:\Qt\qtx” install
输入参数的时候注意/和\,QT是不认\的。
在nmake的过程中有可能会出现一些错误,按照下面的介绍做完,继续nmake,直到成功。
a: 编译一些安装包的时候会有找不到标识名的链接错误,在相应的安装包的源程序下,找到pro文件,把需要的QT 包的名字给加上就可以。例如:
QT += core /
webkit
b: 有时候会碰见语法错误什么的,qmlpropertychangesnodeinstance.cpp文件报 左值什么的语法错误,检查后发现是源程序按照QT的类属性的方法来使用,但是它所引用的H文件却没有这么定义,改成C++的方式后,就OK了。跟java的get/ set方法很像。
4 运行qtcreator 在debuger->cdb下,可以发现已经找到Debugging Tools for Windows ,然后debug path设置上 qt4的目录就可以了 symbol paths: C:\4.7.1\lib,source paths :C:\qt-everywhere-opensource-src-4.7.1\src, C:\4.7.1\include
5 关于jom,开始会报找不到jom的错误,去QT网站上下个jom源程序,编译一下,把jom.exe拷贝到qtc\bin目录下就可以。我个人感觉VC2010的编译器的多线程支持也不错,没有必要使用jom,在projects 设置下,把使用jom的选项给勾了就可以了,这样也不必下载使用jom了,creator会直接使用nmake。
6 中文支持,creator默认没有中文,在qt-creator-2.0.1-src\share\qtcreator\translations目录下有qtcreator_zh_CN.ts文件,使用qt下的linguist工具,编译一下这个文件,得到qtcreator_zh_CN.qm,把这个文件拷贝到qtc\share\qtcreator\translations的目录下就可以了。
其它一些说明:
如果是直接使用qt网站上的VS2008的安装包,那么qtcreator不会显示中文,2008它下面的工具也不会是中文,找到2008安装目录下translations目录,编译一下这个工程就可以显示中文了。(【Visual Studio 命令提示(2010)】-> translations目录 ->qmake-> nmake)
虽然VS2010可以使用Qt Visual Studio Add-in,但是由于这个是免费版,在界面设计和代码之间的转换没有QT Creator 方便,我个人的方法是在QT Creator把界面画好,把信号/槽弄好,然后在VS2010下编写代码。使用前注意把QT Creator的编辑器设置成UTF-8。QT Creator中可以通过编写pro文件来引入代码库,在VS下就需要自己去设置了。
===============================