现在的位置: 首页 > 综合 > 正文

vs2010上编译4.7.4版本的qt运行库

2013年09月26日 ⁄ 综合 ⁄ 共 5162字 ⁄ 字号 评论关闭

 

/************************************************************************************/
    qt最新发布了4.7.4版本,但是官方网站上仅提供vs2008下的安装包,如果直接下载已经编译好
的二进制文件,想在vs2010上运行,我试了下,没能成功。因此痛下决心用vs2010来编译qt。(机
器不行,估计得10小时以上)
    既然QT都使用了自己的编译版本,那么QT Creator 也是要编译一下的,就不要使用它QT已经编
译好的版本。对于QT下使用的一些工具(jom),也最好自己编译后再使用,我的使用环境是
Windows 7 32位,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。

    1.先安装好vs2010,然后去qt网站上下载qt-everywhere-opensource-src-4.7.4.zip 解压到相应
    磁盘目录(我的是E:),然后发现有个叫qt-everywhere-opensource-src-4.7.4的文件夹,修改
    文件夹名字为qt,此时我的qt安装根目录是e:\qt

    2.在开始栏中找到visual studio的工具visual studio命令提示符(2010)。我编译机器是32位的
    所以,就只用最下面那个visual studio命令提示符(2010)。双击该程序
    试着   cd e:\qt
    在e:\qt下输入  configure -platform win32-msvc2010

                   -debug-and-release -nomake examples -nomake demos
                   后根据提示按o(开源协议),y(开始)
                   等待configure完成。
  
                  

    说明:你可以输入configure -help事先查看说明
        
                    -prefix 指定的就是安装目录

                    -platform 选择编译平台

                    -shared -static  就是选择编译静态版

                    -debug-and-release 编译目标 这个是 debug 和 release都编译

                    -no-qt3support 虽然新开发QT的不会使用到QT3,一般情况下还是选上吧,因为难
                    免有些需要编译的QT工具需要它。

                    其它的选项就是选择编译什么QT安装包
                    -nomake examples -nomake docs -nomake demos 就是是不是编译文档 和 例子,
                    编译例子的时间很长,一般可以不编译。
                  
                    如果编译过程需要使用第三方的包,可以用 -I 和-L 来增加。

    3.运行完configure后运行nmake
                    
         这里可以不使用nmake来编译,使用jom.exe,这是一个替代nmake的工具能够利用多核CPU的资源
    来并行编译,能缩短编译时间jom -j 2   即可 2 表示2核下面是地址http://qt.gitorious.org/qt-
    labs/jom。具体使用请查询网页。但是我没有尝试这个jom,老老实实的用nmake来经行编译。
      
         configure在我的机器上需要10分钟左右,然后键入nmake,你就开始了漫长的nmake过程了,如果
    是重新安装的系统后安装的上述程序,不出意外可以先睡上6个小时后,就应该编译完成了。但中途可
    能出现一些情况需要您的处理。
 
             1)编译大概1个小时之后,出现:

                    01.api/qscriptextensionplugin.h(43): Error: Undefined interface
                    02.NMAKE : fatal error U1077: 'C:/Qt/2009.05/qt/bin/moc.exe' : return code
                       '0x1'
                    03.Stop.
                    04.NMAKE : fatal error U1077: '"d:/Program Files/Microsoft Visual Studio
                       9.0/VC/BIN
                    05./nmake.exe"' : return code '0x2'
                    06.Stop.
                    07.NMAKE : fatal error U1077: 'cd' : return code '0x2'
                    08.Stop.

                    api/qscriptextensionplugin.h(43): Error: Undefined interface
                    NMAKE : fatal error U1077: 'C:/Qt/2009.05/qt/bin/moc.exe' : return code
                    '0x1' Stop.
                    NMAKE : fatal error U1077: '"d:/Program Files/Microsoft Visual Studio 9.0
                    /VC/BIN
                    /nmake.exe"' : return code '0x2'
                    Stop.
                    NMAKE : fatal error U1077: 'cd' : return code '0x2'
                    Stop.

                    以上是出错代码,解决方法是将

                    qt/src/script/tmp/moc/debug_shared/mocinclude.tmp
                    qt/src/script/tmp/moc/release_shared/mocinclude.tmp

                    删除,然后继续编译。输入nmake即可。

           2)过了很长时间之后,在编译webkit部分的代码时,会发生错误,系统会停止编译
                    D:/tools/Qt/2010.05/qt/src/3rdparty/webkit/WebCore/tmp/moc/debug_shared/moc_Sock
                    etStreamHandlePrivate.cpp(97) : error C2065: “QSslError”: 未声明的标识符
                    D:/tools/Qt/2010.05/qt/src/3rdparty/webkit/WebCore/tmp/moc/debug_shared/moc_Sock
                    etStreamHandlePrivate.cpp(97) : error C3861: “socketSslErrors”: 找不到标识符
                    正在生成代码...
                    NMAKE : fatal error U1077: “"D:/tools/Microsoft Visual Studio 10.0/VC/BIN/cl.EX
                    E"”: 返回代码“0x2”
                    Stop.
                    NMAKE : fatal error U1077: “"D:/tools/Microsoft Visual Studio 10.0/VC/BIN/nmake
                    .exe"”: 返回代码“0x2”
                    Stop.
                    NMAKE : fatal error U1077: “cd”: 返回代码“0x2”
                    Stop.

                    解决方法是将

                    qt/src/3rdparty/webkit/WebCore/tmp/moc/debug_shared/mocinclude.tmp
                    qt/src/3rdparty/webkit/WebCore/tmp/moc/release_shared/mocinclude.tmp
                    删除之后可以继续编译(重新执行nmake命令)

     4.接着运行nmake install(在E:\qt下)
               如果出现 找不到 win32-msvc2010,把qt-everywhere-opensource-src-4.7.1/mkspecs
           目录拷贝的安装目录就可以了。
               几分钟后,就安装完毕。
              
               然后需要在清理前,切记把 qmake.cache(您的安装根目录下)和configure.cache(您的安
           装根目录下)备份到别的地方,然后nmake clean 腾出空间。
               最后再把 qmake.cache和configure.cache 复制回远处。如果不这样,安装 qt-vs-addin
           后进行 Qt Versions 添加路径时将失败。
    
     5.现在编译就算结束了。
               最后就是在win7上面添加环境变量了。桌面->计算机(右击)->属性->高级系统设置->环境变量->
           Path记录。添加上:      
                                %QTDIR%/bin ;%QTDIR%/lib;%QTDIR%/include   
                                当然你也可以直接添加上绝对路径

     6.添加上qt-vs-addin后进行Qt Versions添加路径。
    
     7.建议安装Visual Assist,你可以从网络上下载安装。     

     8.win7 64位系统请先安装微软的补丁

    

     

http://code.msdn.microsoft.com/KB2280741/Release/ProjectReleases.aspx?ReleaseId=4974

      后在编译

 

 

 

抱歉!评论已关闭.