Qt最新版5.12在Windows环境静态编译安装和部署的完整过程(VS2017)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhangpeterx/article/details/86529231

为什么要静态编译

在默认情况下,用QtCreator编译程序时,使用的是动态编译。编译好的程序在运行时需要另外加上相应的Qt库文件,一大堆dll文件。如果想将生成的程序连同所需要的库一起完整地打包成一个可执行程序,那就需要使用静态编译。Qt官方不提供静态编译好的安装包,所以需要我们在自己的电脑上静态编译。而且exe文件会比动态编译的要小上很多。

1.源码下载

Qt最新版5.12.0的源码下载地址:qt-everywhere-src-5.12.0
选择文件:
在这里插入图片描述
源代码压缩包文件789M,解压后有2.48G的大小。

2. 编译工具下载

Qt官方文档要求编译工具:Qt for Windows - Requirements Qt 5.12
打开源码目录下的README文件,查看Windows环境下编译需要安装的工具:
在这里插入图片描述

ActivePerl

ActivePerl下载地址:Download and Install Perl: ActivePerl | ActiveState
ActivePerl
默认安装时会添加ActivePerl到环境变量。
测试添加是否成功:
在这里插入图片描述

Python

下载Python,添加Python到环境变量。
测试添加是否成功:
在这里插入图片描述

Ruby

Ruby下载地址:RubyInstaller for Windows
ruby
安装时勾选添加到环境变量的选项:
在这里插入图片描述

编译环境选择

在Windows上,有两个预构建环境可供选择:一个是MinGW,另一个是Microsoft Visual Studio(MSVC)。这两个环境不兼容,无法混合。你必须选择一个。
这两者的区别如下:

当你的项目使用MinGW编译的使用,想要用一个MSVC编译生成的库时就会有问题。使用MinGW编译项目的时候,所使用的Lib也要是MinGW编译的。如果你只是开发Window平台的软件时,最好用Qt MSVC组合,这样可以使用大量的第三方lib,还有很多的构建指令,毕竟window上MSVC才是王道。

我选择MSVC,打开安装VS时自带安装的MSCV:VS 2017的开发人员命令提示符

在这里插入图片描述
版权声明:本文为博主原创文章,转载请附上博文链接:Qt最新版5.12在Windows环境静态编译安装和部署的完整过程(VS2017)

3.编译

Qt编译官方文档:Building Qt Sources | Qt 5.12
在D盘新建一个目录用来存放编译好的内容:D:\qt
在VS 2017的开发人员命令提示符的命令行里进入Qt源代码目录:
在这里插入图片描述

1.修改源码里的qtbase\mkspecs\common\msvc-desktop.conf文件

修改-MD为-MT
在这里插入图片描述
在这里插入图片描述
D的意思是动态编译(dynamic),T的意思是静态编译(static)。
这一步官方教程没有要求,但其他人的很多教程里都有写,我就加上了

2.配置config文件:

配置命令如下:

configure.bat -static -prefix "D:\qt" -confirm-license -opensource  -debug-and-release -platform win32-msvc  -nomake examples -nomake tests  -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp

具体含义如下:

configure.bat 
-static //指明是静态编译
-prefix "D:\qt" //指明安装的目录
-confirm-license -opensource  //指明是开源版本的qt
-debug-and-release //指明需要debug版和release版,可以单独选择release版
-platform win32-msvc  //指明使用msvc编译
-nomake examples -nomake tests  //不编译样例
-plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg //可选插件
-opengl desktop 
-mp //多核编译

3.make

上面提到过在Windows上,有两个预构建环境可供选择:一个是MinGW,另一个是Microsoft Visual Studio(MSVC)。
我选择的是msvc环境,使用命令nmake即可进行编译。

nmake

但是MSVC自带的nmake没有多线程编译功能,有一个替代功能的软件jom可以进行nmake的多线程编译。
jom的下载地址:Jom - Qt Wiki
在这里插入图片描述

运行命令:

D:\jom_1_1_3\jom.exe  

make完成后源码和编译后的共有5.6G大小。

4.make install

因为jom是多线程的运行,但我需要用电脑,所以我使用nmake单线程install:

nmake install

命令结束的截图:
在这里插入图片描述
QT的文件夹有3.3G的大小

5.添加到Qt Creator

①添加Qt Versions:
在这里插入图片描述
②新建一个构建套件,Qt版本选择刚添加的静态版,其他选项与动态版相同即可。
在这里插入图片描述
成功:
在这里插入图片描述

4.小结

最后,欢迎大家关注我的GitHub:zhang0peter

Qt5.12.0的静态编译的过程还算顺利,需要注意的是编译前要仔细阅读官方文档,毕竟很多教程不是最新的,但官方文档一般都是最新的。

参考资料:

展开阅读全文

没有更多推荐了,返回首页