Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1063071
  • 博文数量: 264
  • 博客积分: 6005
  • 博客等级: 大校
  • 技术积分: 2798
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-08 20:15
文章分类

全部博文(264)

文章存档

2011年(42)

2010年(213)

2009年(4)

2008年(2)

2007年(3)

分类: C/C++

2011-02-20 22:05:48

http://blog.csdn.net/listlike/archive/2011/01/23/6159760.aspx

虽然QT有各种开发包,但是自己使用的话还是要自己编译一下的,因为开发包的编译环境未必跟你的需求一致,例如QT4.7.1VS2008的包,虽然在VS2010下也可以使用,但是总是有些问题,还是自己编译一次的好。这个文档我参考了很多其他人的文档,由于我偷懒就不在把这些人的链接给加上上了,在这里先说声抱歉了。“人人为我,我为人人,如有雷同,一定抄袭”

    既然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编译过程中就是致命的。最好的解决办法就是吧windowTEMP目录设置在根目录下我就是设置在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 加入到PATHOK了。

打开qt4 安装目录 mkspecs\default,目录下编辑qmake.conf,到最后一行,改成 QMAKESPEC_ORIGINAL=C:/Qt/4.7.1/mkspecs/win32-msvc2010,就好了。

   一切正常的话,编译好的QT Designerhelp等一些工具都是中文的。

  

下来开始编译QT Creator

 

    1 下载安装32Debugging Tools for Windows (x86),如果不先装这个 creator编译的时候会不编译cdb的包,这样最后的Creatordebug设置会没有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了。跟javaget/ set方法很像。

        

   4 运行qtcreator debuger->cdb下,可以发现已经找到Debugging Tools for Windows ,然后debug path设置上 qt4的目录就可以了 symbol paths C:\4.7.1\libsource 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-8QT Creator中可以通过编写pro文件来引入代码库,在VS下就需要自己去设置了。

===============================
// 编译选项 编译 qt 4.7.1库时的选项
configure -opensource -developer-build -platform win32-msvc2010 -shared -debug-and-release -fast -no-qt3support  -prefix C:/QT/qt_vs2010
阅读(5894) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~