VS2010+QT4.8静态编译过程讲解。

来源:互联网 发布:贝格大数据 编辑:程序博客网 时间:2024/05/18 03:45

学习QT已经有了一年之久,还有很多地方不是很懂经常碰鼻子。今天决定写下开发过程所解决的一些问题,一方面为了巩固之前的收获另一方面为了能系统地整理我的所做所学。本文并非完全原创,是我按照网上各位大神的帖子结合我自己的试验编写的。废话不多说,先进行第一步,软件的安装。

网上大部分的开发者使用的是QTCreator进行上位机的开发,但是因为工作的原因,我一开始就接触QT+VS的这种开发方式。刚开始的时候苦于很难找到网上的例子,到现在做着做着反而更加习惯这样的开发方式了。这一章要讲的是VS2010+QT4.8静态编译就是我面临的比较大的问题。之前按照同事给的软件包安装了动态编译的软件,结果软件编译通过后,拷贝到别的电脑就不能用了。因为动态编译没有将动态库编译进exe文件中因为换一个环境,(电脑)该软件就会因为缺少DLL文件而无法打开。我曾经一度傻到在公司所有电脑上安装我的开发环境来支持打开我编译(release)的软件。后来得知需要进行静态编译才开始着手开始进行静态编译的安装。过程中也遇到了很多坑,到时候你就知道我有多蠢了。

1、下载源码包:  qt-everywhere-opensource-src-4.8.0.zip  

注意!!!不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是我们所需要的。我就是一直使用动态编译的库,而一直无法正常编译后通过,这点正确了后边照着来就行了。

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

3、由于Qt4.8在VS环境下的一些问题,为了避免编译中途出现,网上大神总结了3个地方需要修改。(非原创,               后边好好研究)
              (1) 删除源码包中bin目录下的syncqtsyncqt.dat文件,如你不放心可将其改名或剪切到别的位置。如不修改                    将发生Perl not found in environment - cannot run syncqt 错误。
              (2) 修改\mkspecs\win32-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) 修改src\3rdparty\webkit\Source\WebCore\platform下的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错误。

注意!!在复制网络上的一些命令或者代码时候一定要仔细对比每一行末尾和开头的衔接。一般一个很长的命令因为编辑器的行数有限会进行换行,但在编译器进行输入的时候往往简单的复制黏贴是不行的,要进行适当的还原。

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

如上面截图所示,则输入命令进入到源码包的目录下。进入到D盘(d:)。可以使用cd进入你所要进入的目录中,如cd Qt\4.8.0,就能进入到D:\Qt\4.8.0中,在各个目录下,可以使用dir命令查看当前目录下的所有文件,如同linux下的ls命令。我进入我的已解压的源码包目录下,我已重命名为4.8.0了。命令提示符截图如下:

                                

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

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 -nomakeexamples -nomake docs –mp

再次注意!!在复制网络上的一些命令或者代码时候一定要仔细对比每一行末尾和开头的衔接。一般一个很长的命令因为编辑器的行数有限会进行换行,但在编译器进行输入的时候往往简单的复制黏贴是不行的,要进行适当的还原。

                                            

②、执行配置,期间会询问是否采用open source(开源版本),还是商业版本,输入”o”选择开源版本;询问是否同意条款,输入”y”表示同意,开始执行配置过程,直到提示配置完成,可以下一步nmake,以开始执行编译。
③、输入nmake,执行编译,编译过程数个小时(具体看个人电脑配置),编译时最好关闭防火墙,360之类的。

                         

命令行操作到此结束

   5、接下来安装VS插件,安装文件为qt-vs-addin-1.1.10.exe,以下是安装过程以及安装的选项。(该文件和QT的版本有关)

                              

                                        

   


                                          



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

 打开QT工程后,稍稍等待左下角提示关联文件包含提示结束,出现“就绪”的提示后,即可像编译普通VC程序一样,

:该段为本文注释:准备好前面的步骤后编译提示找不到qtmain.lib;注意修改属性-》链接器-》附加库目录的库地

 注:该段为本文注释:准备好前面的步骤后编译提示找不到qtmain.lib;注意修改属性-》链接器-》附加库目录的库地址


本文到此结束,因为距离编译时间已有一年之久,所以上边很多内容为复制黏贴,并没有再次试验。但该过程我是试验过的。希望下次安装的时候再来添加细节。末尾加上原文地址用于参考的查错。

 http://www.cnblogs.com/elect-fans/archive/2012/03/29/2422816.html点击打开链接

          
           


原创粉丝点击