• VS2010 win7 QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序


    https://www.cnblogs.com/rainbowzc/p/4689009.html

    下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是我们 所需要的。只有用源码包才能做真正的纯静态编译,如果用Qt官网已编译的标准库.exe文件进行编译,有可能出现各种错误,而且编译后的文件巨大,我当时 就在这里绕了很大的弯子,请童鞋们注意啦!!可能有些老鸟会笑话,但我本着最严肃的态度告诉菜鸟们,上网查资料看博客,一定要注意博文的文字细节,有时候 差几个字就能让你费很大的劲,四处碰壁。

    首先解压源码包到你想要保存编译的位置,注意文件目录一定不能包含中文和空格!

     

    1.下载安装VS2010,我装的是英文破解版,我的安装路径是D:Microsoft Visual Studio 10.0,选择完全安装,完成后在C:Program Files下会生成很多文件夹,注意Microsoft SDKs文件夹配置环境变量时要用到,安装完成后可以正常启动VS2010,但是如果想通过命令好启动VS2010还需要设置系统环境变量,设置方法:

    我的电脑->右键菜单选择属性->高级系统设置->高级->环境变量->xp用户变量;在用户变量中增加以下环境变量,注意别自己加空格:

          include =  D:Microsoft Visual Studio 10.0VCinclude;C:Program FilesMicrosoft SDKsWindowsv7.0AInclude;

          lib = D:Microsoft Visual Studio 10.0VClib;C:Program FilesMicrosoft SDKsWindowsv7.0ALib;

          path = D:Microsoft Visual Studio 10.0VCin;D:Microsoft Visual Studio 10.0Common7IDE;C:Program FilesMicrosoft SDKsWindowsv7.0Ain;

     

      (2).在环境变量中的系统环境变量增加:QTDIR=D:Qt4.7.3, QMAKESPEC=win32-msvc2010,Path = %QTDIR%in;

     

          由于Qt4.8在VS环境下的一些问题,为了避免编译中途出现,我总结了3个地方需要修改。

    (1) 删除源码包中bin目录下的syncqt和syncqt.dat文件,如你不放心可将其改名或剪切到别的位置。如不修改将发生 Perl not found in environment - cannot run syncqt 错误。

    (2) 修改mkspecswin32-msvc2010下的qmake.conf文件,将其中的
    QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t-改成QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t
    注意末尾的”-“号区别。如不修改将来如有项目使用wchar_t,qt却编译成wchar_t-,编译会导致连接错误,提示找不到Qwstring;
    QMAKE_CFLAGS_RELEASE,QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO,QMAKE_CFLAGS_DEBUG这3处后面的MD,MDd对应改成MT,MTd,以实现在没有VC库的电脑也能运行Qt程序。

    (3) 修改src3rdpartywebkitSourceWebCoreplatform下的 DefaultLocalizationStrategy.cpp,定位到327行,将本行替换成return WEB_UI_STRING("Look Up "<selection>"", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));(由于word自动排版问题,请各位直接将以上 英文部分一次性全复制,其实它们是一行,不要分行复制)。
    如不修改将出现编译Webkit 时会出现 U1077错误。

          VS2010下纯静态编译,需要再VS2010的命令提示符下进行,我安装的是中文版visual studio2010,我的打开步骤如下(英文版自己对号入座):开始->Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio 命令提示(2010),打开的窗口如下:

    clip_image002

          上图是VS2010自动帮我配置好环境变量,已正常进入VS2010的VC目录。我当初碰到过一次自动配置环境变量错误,在截图的第二行出现一行英文,内 容大概是无法确定VC环境以及VC的位置,当时查遍了各种资料以及尝试网上的各种办法,中文的外文的网站各种建议,都不可以,差点让我失去信心。当时一生 气,重启电脑,出门走走又自己琢磨了好几种方法,回来刚想试一试,没想到重新打开命令提示符,居然又自动可以了,真是惊喜啊。。最后想了想,当时错误可能 是先装了SDK,然后又胡乱根据网上的方法,手动修改了电脑的环境变量,然后就出现这个问题。。后来再重启电脑前,把之前手动添加的环境变量统统删了,重 启后重开命令提示符就恢复了。希望对有和我相同问题的童鞋能有所帮助。

    上一段是题外话,如果你的VS已经自动帮你配置好环境变量了,如上面截图所示,则输入命令进入到源码包的目录下。这里教 一些命令行新手,老鸟请直接跳过,如你现在的目录在C盘下,而你的源码包在D盘,则输入”d:”,回车,进入到D盘。可以使用cd进入你所要进入的目录 中,如cd Qt4.8.0,就能进入到D:Qt4.8.0中,在各个目录下,可以使用dir命令查看当前目录下的所有文件,如同linux下的ls命令。我进 入我的已解压的源码包目录下,我已重命名为4.8.0了。命令提示符截图如下:

    clip_image004

         接下来进行编译前的配置工作。执行配置,完整命令如下:

    configure -debug-and-release -fast -static -platform win32-msvc2010 -no-qt3support -script -scripttools -qt-zlib -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -qt-sql-sqlite -plugin-sql-sqlite -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -qt-style-plastique -qt-style-cleanlooks -qt-style-motif -qt-style-cde -nomake demos -nomake examples -nomake docs -mp

    //用的下面的配置参数

    E:qt-4.8.7>configure -debug-and-release -fast -static -platform win32-msvc2010
    -no-webkit -no-script -no-qt3support -nomake demos -nomake examples -nomake docs
     -mp

          各个命令说明请参照我的另一篇博文:Qt configure 参数不完全说明http://www.cnblogs.com/elect-fans/archive/2012/03/28/2420647.html

    推荐将debug和release版本都编译,那样VS2010编译调试Qt程序不会出现LINK错误,本人亲测,有些 人说只要编译release就可以了,但我个人觉得多编译一个debug,就增加一点点空间,而且后面命令省掉了demos等文件的编译,我最终编译完成 的文件也就3.6G,对于现在的电脑硬盘来说都是毛毛雨了。命令最后的-nomake demos -nomake examples -nomake docs,不变异demos,exampls,docs文件,这样既可以提高编译速度,也能减小编译后的体积。-mp适合多核用户提高编译速度,- fast也很重要,细节请看上面的博文。

    执行配置,期间会询问是否采用open source(开源版本),还是商业版本,输入”o”选择开源版本;询问是否同意条款,输入”y”表示同意,开始执行配置过程,直到提示配置完成,可以下一步nmake,以开始执行编译。

          输入nmake,执行编译,编译过程数个小时(具体看个人电脑配置),编译时最好关闭防火墙,360之类的,你可以做别的事情了,看看网页,电影之类的,但不要运行大型程序,不然会严重降低编译速度。

    clip_image006

         编译成功结束,如同上图所示,可以关闭命令提示符了。我之前在看网上的资料,执行nmake clean,nmake confclean,结果造成后面VS2010编译Qt程序以及QtSDK编译程序出现各种问题,如找不到config.h,qtmaind.lib等 等。所以强烈建议,编译成功就到此结束,不要执行上述两个清理工作。之前还尝试在configure添加-prex 指定nmake install安装目录,后经实验,编译后,的确可以实现编译完成后能实现静态库链接,且在QtCreator编译出静态程序,但是在VS2010编译程 序时,出现很多找不到PDB的警告,所以舍弃之。

    更多链接请光临我的博客:http://www.cnblogs.com/elect-fans/

          接下来安装VS插件,安装文件为qt-vs-addin-1.1.10.exe,以下是安装过程以及安装的选项。

    clip_image007

    clip_image008

    安装完成后,打开VS2010,可以通过QT菜单进行QT编译库定位以及打开pro工程文件,也可以通过新建工程项目来创建QT工程。

    clip_image010

    clip_image011

    clip_image013

          打开QT工程后,稍稍等待左下角提示关联文件包含提示结束,出现“就绪”的提示后,即可像编译普通VC程序一样,点“编译”按键进行编译以及通过调试菜单 进行调试。注意通过VS2010主要用于调试,要想发布最终的静态链接程序,最好通过QTSDK中的QTCreator来发布。

          安装QtSDK,以下是安装过程以及安装选项:

    clip_image014

    clip_image015

    clip_image016

           安装完成后,打开QtCreator中,在菜单”工具”->”选项”->”构建和运行”->”Qt版本”,手动添加刚才静态编译的QT的qmake.exe工具。

    clip_image018

    clip_image020

              配置完成,接下来就可以打开Qt工程,通过项目设置来发布静态链接的Qt程序咯!!

    我经过4天N次尝试,亲自测试各种资料和方法,最终通过实践成功完成了VS2010静态编译配置QT,期间遇到种种问题,总算解决了,由于篇幅的原因就不一一陈述了,不过本文是我一步步整理出来的,不敢说最适合,但一定有效!请大家关注我的博客:http://www.cnblogs.com/elect-fans/,一起探讨学习。

  • 相关阅读:
    MVVM架构~knockoutjs实现简单的购物车
    Thrift架构~目录
    WebApi系列~在WebApi中实现Cors访问
    WebApi系列~基于RESTful标准的Web Api
    MVVM架构~目录
    IOS设计模式学习(20)命令
    MySQL保留关键字
    Eclipse with C++: "Launch failed. Binary not found."
    HTML5 Canvas鼠标与键盘事件
    通过openssh远程登录时的延迟问题解决
  • 原文地址:https://www.cnblogs.com/shuimuqingyang/p/10696661.html
Copyright © 2020-2023  润新知