文章目录

  • 为什么要静态编译
  • 1.源码下载
  • 2. 编译工具下载
    • ActivePerl
    • Python
    • Ruby
    • 编译环境选择
  • 3.编译
    • 1.修改源码里的qtbase\mkspecs\common\msvc-desktop.conf文件
    • 2.配置config文件:
    • 3.make
    • 4.make install
  • 4.添加到Qt Creator
  • 5.小结

我把在编译好的64位Qt文件放到了GitHub上:zhang0peter/qt-5.13: qt windwos static link

我的个人博客:zhang0peter的个人博客

为什么要静态编译

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

1.源码下载

Qt最新版5.13.0的源码下载地址:Index of /archive/qt/5.13/5.13.0/
2019-6-18: Qt 5.13.0版本出来
选择文件:

文件大小794M,解压后2.2 G。

2. 编译工具下载

Qt官方文档要求编译工具:Qt for Windows - Requirements | Qt 5
打开源码目录下的README文件,查看Windows环境下编译需要安装的工具:

ActivePerl

ActivePerl下载地址:Download and Install Perl: ActivePerl | ActiveState
选择最新的版本 5.28


然后注册,再下载:

安装时默认会添加ActivePerl到环境变量。
测试添加是否成功:

Python

同样的方法,下载Python:Download and Install Python: ActivePython | ActiveState
安装时默认会添加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.13在Windows环境静态编译安装和部署的完整过程(VS 2017/VS 2019)

3.编译

在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

我的CPU是i7-6700HQ,CPU100%运行,花费了大约3个小时。

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

4.make install

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

nmake install

安装完成后,QT的文件夹有2.98G的大小

4.添加到Qt Creator

这里需要说明一下,Qt Creator现在已经不能直接下载最新版本,需要在线安装:Index of /archive/online_installers/3.1
下载后安装最新版的Qt Creator4.9
①添加Qt Versions:

②新建一个构建套件,Qt版本选择刚添加的静态版,其他选项与动态版相同即可。

成功:

一个exe的大小是11M,包括了所有需要的内容。

5.小结

我的个人博客:zhang0peter的个人博客

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

Qt最新版5.13在Windows环境静态编译安装和部署的完整过程(VS 2017/VS 2019)相关推荐

  1. Qt最新版5.14在Windows环境静态编译安装和部署的完整过程 VS 2019-Qt static link build Windows 32 bit/64 bit

    文章目录 为什么要静态编译(static link) 1.源码下载/source code download 2. 编译工具下载/compiler download 编译环境选择:MinGW/MSVC ...

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

    文章目录 为什么要静态编译 1.源码下载 2. 编译工具下载 ActivePerl Python Ruby 编译环境选择 3.编译 1.修改源码里的qtbase\mkspecs\common\msvc ...

  3. 开源企业内部沟通协作平台, 免费企业IM, ENTBOOST, Windows环境:免安装模式部署

    关于ENTBOOST 恩布互联: ENTBOOST公司致力于提供,开源企业内部沟通协作平台,开源团队协作平台,免费企业IM,私有云部署产品:所有ENTBOOST产品可以免费部署到企业内部服务器上,帮助 ...

  4. 开源团队协作平台, 免费企业IM, ENTBOOST, Windows环境MySQL版本安装

    ENTBOOST公司致力于提供,开源企业内部沟通协作平台,开源团队协作平台,免费企业IM,私有云部署产品:所有ENTBOOST产品可以免费部署到企业内部服务器上,帮助企业实现私密数据信息安全: ENT ...

  5. windows环境下如何安装memcached教程

    Memcached 是一个开源免费高性能的分布式内存对象缓存系统,能够加快网站访问速度和减轻数据库压力,本文向大家介绍下windows环境下如何安装memcached. 工具/原料 memcached ...

  6. 4.windows环境下如何安装memcached教程(转载+自己整理)

     Memcached 是一个开源免费高性能的分布式内存对象缓存系统,能够加快网站访问速度和减轻数据库压力,本文向大家介绍下windows环境下如何安装memcached.百度经验:jingyan. ...

  7. HMMer在Windows环境下的安装

    HMMer在Windows环境下的安装 遇到的困难 官网www.hmmer.org上没有Windows版的下载链接 下载链接404 解决 方案1 方案2 遇到的困难 刚刚入门生信,想要学着用HMMer ...

  8. Windows环境下PyTorch_geometric安装踩坑

    Windows环境下PyTorch_geometric安装踩坑 pytorch geometric在windows环境下安装非常恶心,莫名其妙各种报错.本帖针对GCC的编译error提供解决方案. 一 ...

  9. OpenVINO之二:Windows环境下OpenVINO安装与配置

    OpenVINO系列: OpenVINO之一:OpenVINO概述 OpenVINO之二:Windows环境下OpenVINO安装与配置 OpenVINO之三:Linux环境下OpenVINO安装与配 ...

最新文章

  1. 向访客和爬虫显示不同的内容
  2. 保护隐私的 Structure-from-Motion (SfM)
  3. linux挂载设备类型lvm,linux——管理系统设备之LVM的管理
  4. php js vbs,VBScript版的PHP extract()函数
  5. Python中的支持向量机SVM的使用(有实例有源码)
  6. 使用TR1的智能指针
  7. python中什么最重要_Python 3中被忽视了的三大重要功能
  8. leetcode283. 移动零 比官方更好的解法。
  9. SQL中的CASE使用方法
  10. 【汇编语言与计算机系统结构笔记20】补充内容:可定制处理器指令集
  11. 自定义配置节 Section
  12. 大物实验报告-转动惯量的测定金属杨氏模量的测定
  13. 产品干货1:如何套用闫荣的产品心法?
  14. 【转】win7 旗舰版激活密钥
  15. 操作系统--内存管理超详细整理!
  16. 一个账号可登录多个微信
  17. oracle数据库存储管理--ASM
  18. 云短信使用——阿里云短信使用步骤
  19. Kubernetes 1.25 正式发布,多方面重大突破
  20. Unloaded branch node detected. “loadOptions“ prop is required to load its children.

热门文章

  1. empty怎么发音_empty,怎么读,解答要读出来,empty怎么读慢一点,清楚一点!
  2. 吐槽 | 聊一聊公众号的那些事
  3. Nature子刊:改进宏基因组的分箱和组装的新方法
  4. MPB:EGFP荧光标记大肠杆菌的构建
  5. 单词不用背,学完自然会!”这个方法,你知道越早越好!
  6. 培养组学对已分离人类细菌和古菌物种库的贡献
  7. 增强迪基-福勒检验(ADF检验、augmented Dickey-Fuller test)是什么?解决了什么问题?
  8. R语言使用gganimate包可视化动画点直方图生成过程(dot histogram)、在数据遍历的过程中逐步在箱体内堆叠数据点形成最终的点直方图
  9. R语言ggplot2可视化使用lwd和flatten参数调整箱图(boxplot)线条的粗细:中位线和其他线条整体粗细比例更协调
  10. keras构建前馈神经网络(feedforward neural network)进行回归模型构建和学习