• 21646阅读
  • 10回复

[提问]在VS2010下编译QT4.7.1和QT Creator [复制链接]

上一主题 下一主题
离线listlike
 

只看楼主 倒序阅读 楼主  发表于: 2011-01-23
— 本帖被 XChinux 从 Qt for Windows 移动到本区(2011-01-23) —
  
    虽然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,运行【VisualStudio 命令提示(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安装包
                  
                   -nomakeexamples -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 ^
                            -nomakeexamples -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,就好了。
   一切正常的话,编译好的QTDesignerhelp等一些工具都是中文的。
  
下来开始编译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)输入命令。
         qmakeCONFIG+=release “QT_PRIVATE_HEADERS=C:/QT/qt-everywhere-opensource-src-4.7.1/include” C:\Qt\qtc
         nmake
         nmakeINSTALL_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下,可以发现已经找到DebuggingTools for Windows ,然后debug path设置上 qt4的目录就可以了 symbol paths C:\4.7.1\libsource paths C:\qt-everywhere-opensource-src-4.7.1\srcC:\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 VisualStudio Add-in,但是由于这个是免费版,在界面设计和代码之间的转换没有QT Creator 方便,我个人的方法是在QT Creator把界面画好,把信号/槽弄好,然后在VS2010下编写代码。使用前注意把QT Creator的编辑器设置成UTF-8QT Creator中可以通过编写pro文件来引入代码库,在VS下就需要自己去设置了。

[ 此帖被listlike在2011-01-23 22:38重新编辑 ]
离线leaf-
只看该作者 1楼 发表于: 2011-02-12
不错,学习了。
离线haofan2008
只看该作者 2楼 发表于: 2011-02-25
这么难复杂啊
离线haofan2008
只看该作者 3楼 发表于: 2011-02-25
回 楼主(listlike) 的帖子
我菜鸟,请问这个和在VS2010中安装QT有什么区别?
离线hechaofeng
只看该作者 4楼 发表于: 2011-02-27
listlike把你的QQ号告诉我,或者加我的QQ 号:657140312。本人初学Qt,有很多地方搞不明白,期望您能指点指点。谢谢!
离线dragon_fly

只看该作者 5楼 发表于: 2011-02-28
嗯,这个很不错,值的学习啊
离线dragon_fly

只看该作者 6楼 发表于: 2011-03-01
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 -qt-style-windowsxp -qt-style-windowsvista -webkit -prefix E:/QT -nomake examples -nomake docs -nomake demos
动态的,这样可以吗
离线yejustme

只看该作者 7楼 发表于: 2011-04-17
能不编译,就不编译。呵呵,听着硬盘、风扇狂转很不爽
离线omss

只看该作者 8楼 发表于: 2011-04-24
请教楼主,vs2010有多大,在哪里有可用版本下载?
离线omss

只看该作者 9楼 发表于: 2011-04-24
qt-everywhere-opensource-src-4.7.1.zip这个包里是不是已经包含qtcreator了?
还要单独再编译qtcreator吗?
离线tongkang
只看该作者 10楼 发表于: 2012-02-18
大哥。。。我VS2010+QT4.8.0+Qt Visual Studio Add-in1.1.10  昨天弄完 编译不了。。。后来我就直接打开VS,新建了QT应用项目,在里面跑了个QThelloword程序,能跑。。。这是为什么呢?我是不是没有成功啊?
快速回复
限100 字节
 
上一个 下一个