Qt521静态编译过程详解转载.docx

上传人:b****4 文档编号:6057830 上传时间:2023-05-09 格式:DOCX 页数:10 大小:353.54KB
下载 相关 举报
Qt521静态编译过程详解转载.docx_第1页
第1页 / 共10页
Qt521静态编译过程详解转载.docx_第2页
第2页 / 共10页
Qt521静态编译过程详解转载.docx_第3页
第3页 / 共10页
Qt521静态编译过程详解转载.docx_第4页
第4页 / 共10页
Qt521静态编译过程详解转载.docx_第5页
第5页 / 共10页
Qt521静态编译过程详解转载.docx_第6页
第6页 / 共10页
Qt521静态编译过程详解转载.docx_第7页
第7页 / 共10页
Qt521静态编译过程详解转载.docx_第8页
第8页 / 共10页
Qt521静态编译过程详解转载.docx_第9页
第9页 / 共10页
Qt521静态编译过程详解转载.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Qt521静态编译过程详解转载.docx

《Qt521静态编译过程详解转载.docx》由会员分享,可在线阅读,更多相关《Qt521静态编译过程详解转载.docx(10页珍藏版)》请在冰点文库上搜索。

Qt521静态编译过程详解转载.docx

Qt521静态编译过程详解转载

【原创】--经验--Qt5.2.1(forMicrosoftVisualStudio2012version)静态编译过程详解

Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。

它既可以开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务器。

Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(MetaObjectCompiler,moc))以及一些宏,易于扩展,允许组件编程。

(摘自XX百科:

Qt简介)

QtSDK包括Qt(库)以及QtCreator(集成开发环境,即IDE)。

总之,对于图形用户界面应用程序开发者而言,Qt是一个很好用的开发工具。

我们在下载别人已经写好的程序时,经常会看到一个光秃秃的.exe可执行文件,对编程不了解的人可能不会太在意这个现象,但是对初学程序设计的同学来说就会产生疑问:

“我用Qt写出来的程序不能单独执行啊,必须和一些动态链接库(即.dll文件)放在同一个根目录下才可以执行的”。

实际上,Qt,其实还有其他很多可视化集成开发环境,默认的都是动态编译,通俗了讲就是可执行文件必须和动态链接库联合出现才能执行。

而往往我们发布程序时为了方便起见,最好只要一个.exe可执行文件。

这就要用到静态编译,就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so或.ilb)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。

这是一个比较麻烦的过程,要把整个qt的库重新编译,编译成静态库,我也弄了很久。

闲话少说,为了让同学们少走弯路,下面我就来分享一下如何将Qt静态编译。

为了方便读者起见,我就从一台还没装qt甚至是VS2012的电脑开始讲起。

(但是还是假定有一点Qt基础的)

一、下载Qt的最新版本

=。

=这个总不用我说了吧。

http:

//qt-project.org/downloads去这个官网下载,根据你的具体操作系统决定,本人的计算机是Windows64位的操作系统。

我们这里编译器选择是VisualStudio2012(因为这毕竟是Microsoft亲生的,选别的只会各种蛋疼

),既然这样,当前适合的新版本就是Qt5.2.1forWindows64-bit(VS2012,OpenGL),下载安装即可。

另外这个是SDK版本,因此已经包括了QtLibrary和QtCreator两部分了,比较省心。

二、下载MicrosoftVisualStudio2012

==这个其实也不用说了。

注意这个仅仅是一个下载器,运行以后下载VS2012,此时请注意网络畅通,否则。

其实也并不是很顺利==,因为很可能会遇到一个问题,那就是缺少.NETFramework4.5,照例给个链接自己玩去

),之后就是下载安装VS2012的事情了。

这样我们就附带的把VS2012都下到电脑上了==,这个版本的Qt用的是VS2012的编译器,所以只能这样了。

安装完毕后它会提示你输入序列号来激活,自行XX即可,完毕就变成“正版VS2012”了。

弄好后我们可以编一个HelloWorld程序试试看。

三、其他一些必要的东西

1.Qt5.2.1的原始代码。

这个有别于之前我们下载的Qt,这是没经过任何编译的Qt源代码,我们要在它的基础上DIY静态编译的库。

可以在官网上下,也可以用这个我上传到度盘上的

2.组件:

Perl在

Python在http:

//www.python.org/download/releases/,注意下载2.7版本的。

(注意事项下述)

Ruby在http:

//www.rubyinstaller.org/(注意事项下述,必看)

3.组建的注意事项

①安装时最好全部使用它默认的目录,免得到时候出乱子

②Python的安装:

光安装好那个程序包是没用的,还要设置环境变量。

右击计算机->属性->高级系统设置->环境变量,点选用户变量的TMP和系统变量的Path,双击Path,在末尾加上分号和Python的目录(我默认是C:

\Python27),确定。

之后确认一下,运行cmd控制台,运行C:

\>python,出现如图的样子就行了。

③Ruby的安装:

在执行安装程序时必须勾选下图所示的两个选项,安装完成后在cmd上执行C:

\>ruby-v的命令,没出异常就可以了。

四、开始静态编译:

之前的准备工作做好后,我们就准备开始静态编译了

在qt-everywhere-opensource-src-5.3.1目录命令行执行:

echofoo>qtbase\.gitignore

用configure配置QT5.0.1时出现一个错误:

“qtbase\\configure.exe'不是内部或外部命令,也不是可运行的程序或批处理文件”。

原因是直接下的代码,并不是用git里clone出来的。

解决办法是在qtbase创建一个.gitignore文件,里面内容为foo。

如在qt-everywhere-opensource-src-5.0.1目录下,可以运行命令:

“echofoo>qtbase\.gitignore”。

然后再configure即可通过。

五、更改VC运行库的配置

*注意:

这个是非常重要的一点,千万不能忘记。

(我第一次进行静态编译时直到快结束了才想起来这一步忘记了,结果几个小时白费,全部重来

VS2012对应的配置文件是:

qt-everywhere-opensource-src-5.2.1\qtbase\mkspecs\win32-msvc2012\qmake.conf,用记事本打开这个配置文件,将以下三处-MD修改为-MT

QMAKE_CFLAGS_RELEASE=-O2-MT

QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO+=-O2-MT-Zi

QMAKE_CFLAGS_DEBUG=-Zi-MTd

六、建立一个批处理文件

在qt-everywhere-opensource-src-5.2.1的根目录下建立一个名为vs2012.build.bat的批处理文件进行编辑,内容如下:

configure-confirm-license-opensource-platformwin32-msvc2012-vcproj-debug-and-release-static-prefix"D:

\Qt\5.2.1-static"-no-opengl-qt-zlib-qt-libpng-qt-libjpeg-qt-freetype-no-angle-nomaketests-no-compile-examples

(这个表示我们之后得到的静态包就是D:

\Qt\5.2.1-static)

七、执行批处理文件

写好后我们就运行这个批处理文件。

在安装好VS2012后,我们在开始菜单里找到MicrosoftVisualStudio2012的文件夹,点开VisualStudioTools,点击“VS2012x86本机工具命令指示”(VS2012x86NativeToolsCommandPrompt.bat),目录指向F:

\qt-everywhere-opensource-src-5.2.1,运行vs2012.build.bat,等待一会。

八、开始编译

上一步不出意外的话会正常结束。

正常情况下此时这个本机工具批处理文件应该最后一行显示F:

\>qt-everywhere-opensource-src-5.2.1>,然后等待你输入,这时,输入nmake,敲下回车。

这时系统就会自动进行编译,这是一个漫长的过程。

该干啥干啥去吧,一切正常的话大约3个小时编译完成,不正常的情况就呵呵了。

这个过程中原来的文件夹体积逐步庞大,从原先的几百M变成几个G

九、安装

上面的过程正常结束的话应该还是显示F:

\>qt-everywhere-opensource-src-5.2.1>等待输入,此时键入nmakeinstall,敲下回车,系统就会把必要的文件复制到之前我们设置的D:

\Qt\5.2.1-static中去。

这个过程大约几十分钟吧。

十、在VS2012中导入静态包

首先,先下载一个VS2012的插件qt-vs-addin-opensource-1.2.3-alpha.exe,我们可以在Qt官网上下,进入Qt官网,点击DOWNLOADS,下拉到otherDownloads,选择VisualStudioAdd-in1.2.3AlphaforQt5,下载安装。

完成后打开VisualStudio,我们会看到上面的一栏里多了QT5这一个选项卡,点击QT5,点击最下面的QtOptions,添加D:

\Qt\5.2.1-static这一个目录,确定,然后就可以了。

十一、构建套件,测试程序

至此为止,Qt外部的东西都弄好了,下面我们搞一下Qt内部。

打开QtCreator,工具->选项->构建与运行->QtVersion,手动添加一个新的我们做的静态编译版本5.2.1-static,目录是D:

\Qt\5.2.1-static\bin\qmake.exe,接着选择构建套件,手动添加一个套件,名字叫“静态编译”,编译器选x86的,调试器无所谓,Qt版本就是我们刚刚添加的5.2.1-static。

将这个套件设为默认。

至此全部搞定。

我们试试看,新建一个项目,构建套件就选5.2.1-static,然后随便乱写一个程序,选择release模式测试一下。

静态编译的时间要比动态的长

,而且编译出来的文件更大(因为包含动态链接库了,以后我们可以下载ASPack软件压缩一下这个.exe,这是之后的事情了)。

现在,我们找到这个静态编译出来的程序,把这个.exe单独拿出来放在桌面上,运行一下,是不是可以单独执行了呢?

那就祝贺你,至此全部成功!

十二、一个注意点

还有一个东西需要特别注意,那就是无论是QtSDK、VS2012,还是D:

\Qt\5.2.1-static、F:

\qt-everywhere-opensource-src-5.2.1都不要再去移动了,千万不要贪图硬盘空间把F:

\qt-everywhere-opensource-src-5.2.1删了(因为我差点手贱删了它),否则就只能呵呵了。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2