Qt最新版5.12.2在Win10环境静态编译安装和部署的完整过程(VS2017)
一、为什么要静态编译
用QtCreator编译程序时,使用的是动态编译。编译好的程序在运行时需要另外加上相应的Qt库文件,一大堆dll文件。如果想将生成的程序连同所需要的库一起完整地打包成一个可执行程序,那就需要使用静态编译。Qt官方不提供静态编译好的安装包,所以需要我们在自己的电脑上静态编译。而且exe文件会比动态编译的要小上很多。
二、源码下载

打开网址选择一般选择最新的版本,根据QT官方Qt5.12这一版有长期的技术支持,大约5年的样子稳定性相对来说比较高,所以建议选择这个版本的源码来编译。 我编译的时候才是Qt5.12.2,MD我前天刚编译好今天就跟新到Qt5.12.3。伤不起啊。
三、安装编译工具
安装的编译工具有:
一般来说下载这三个工具就可以,记得要设置环境变量,当然你要编译MSVC版的安装Visual Studio2017,并且安装它。
四、编译环境选择
这次我选择编译x86的静态库,原因很简单。64位的系统可以运行32位的程序,但是反之则不可以,所以选择编译环境位x86

五、编译参数配置
打开源码所在位置( qtbase\mkspecs\common\msvc-desktop.conf )找到如图所示位置文件并修改保存:

六、开始编译
- 先打开命令工具提示切换到源码所在位置

- 切换完成之后输入如下命令(建议复制粘贴):
configure.bat -static -prefix "D:\Qt\msvc2017_static" -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\msvc2017_static" //指明安装的目录
-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 //多核编译
make
在命令提示工具输入:
nmake
此时源码开始编译,编译时长根据电脑的配置而异,我的电脑I7 7500U Inter240GSSD,大约从早上上班9点种开始编译,在下午6点钟下班的时候没有编译完,等第二天早上上班之后发现已经编译完了,具体多长时间也不知道。乐观12+小时以上。nmake install
安装完成之后在命令提示工具输入:
nmake install
此时编译号的源码开始安装,这个安装时长大概2个小时左右吧。安装完成之后就可以使用了。
七、开始使用
源码编译安装完成之后,需要安装Qt Creator工具来使用我们刚刚编译好的静态QT。首先下载 [QtCreator](http://download.qt.io/official_releases/qtcreator/)
依然选择最新版下载并安装。安装完成之后打开开发工具我们需要配置一下才能使用。


** 注意事项:在里一定要天写“win32-msvs”。否则编译器会报编译目标类型错误 **
配置完以上内容就可以开始放心的编译自己的程序。测试了一下空白程序在release模式下大概11M左右,还是蛮大的吧,优势就是不必担心丢失DLL文件而报错了。
八、注意事项
在添加Qt Versions时可能会报“qmlscene 未安装”,出现黄色感叹号。这是你只需将安装Qt官方动态编译的安装包拷贝相应目录里面的“qmlscene.exe”到我们刚刚编译安装的目录下重新添加就ok了。
当你下载别人编译好的静态库或者把自己编译的库移动了一个位置时Qt Versions 位提示错误“qt未正确安装,请使用make install进行安装”。不要怕其实不用重新编译安装的,只需在目录下新建一个文本文档“qt.txt”,然后输入
[Paths]
Prefix=D:/qt/static
** 注意:输入完之后保存时选择“ANSI”,另存为的时候有选择提示选择“ANSI”类型即可。最后将qt.txt改为qt.conf。 **
九、结尾
做好上述8个步骤之后我们的静态环境就彻底搭建好了,然后就欢乐的码代码吧。
附上自己编译的静态库和编译工具 :链接:https://pan.baidu.com/s/1E3Y40FCmzQQMz_doZ0OYcQ 提取码:fme4
Qt最新版5.12.2在Win10环境静态编译安装和部署的完整过程(VS2017)的更多相关文章
- Win10 VS2015 静态编译Qt5.6.2源码
由于VS2015需要CRT等拓展组件,因此把内部编写的工具软件以静态发布,固需要编译Qt源码.Qt5.6.2版本,VS2015,Win10 1.安装python,perl,下载jom 2.改文件com ...
- Anaconda 安装教程(Win10环境) Tensorflow安装
序 Python易用,但用好却不易,其中比较头疼的就是包管理和Python不同版本的问题,特别是当你使用Windows的时候.为了解决这些问题,有不少发行版的Python,比如WinPython.An ...
- RabbitMQ 在 Win10 环境下的安装与配置
1 RabbitMQ 环境配置 1.1 ErLang 下载安装 RabbitMQ 需要 ErLang 环境支持:首先下载 ErLang 并安装. 建议使用新版本,版本过低存在与 Rab ...
- suse 12 sp3 利用shell脚本离线编译安装ansible
# 测试环境是suse 12 sp3的系统,机器都是内网使用的,安装ansible真的很难顶 # 测试环境使用的python版本:2.7.13-27 # 此脚本只在本人测试环境成功,其他环境,需要选择 ...
- win10环境下tensorflow-gpu安装
踩了很多坑,浪费了一下午时间,在此记录一下. pip install tensorflow-gpu 然后下载安装cuda8.0 https://developer.nvidia.com/cuda-do ...
- 【初学必备】Win10环境下Anaconda安装
Anaconda集合了python,Spyder,Jupyter notebook及conda-----包管理器与环境管理器(含常用的panda,numpy等),省去单独下载的繁琐步骤,方便使用. 注 ...
- win10 环境下 MinGW-w64安装
MinGW-w64 就是 著名C/C++编译器GCC的Windows版本. 一.什么是 MinGW-w64 ?MinGW 的全称是:Minimalist GNU on Windows .它实际上是将经 ...
- Win10 Ubuntu18.04 编译安装 nignx
nginx 下载页 http://nginx.org/en/download.html wget http://nginx.org/download/nginx-1.14.0.tar.gz //安装依 ...
- Linux/Ubuntu下 静态编译Qt程序
一般情况下,我们用Qt编译出来的程序是要依赖于系统Qt库的,也就是这个程序移到别的没有安装Qt库的系统上是不能使用的.会提示缺少……库文件之类的错误.这就是动态编译的结果. 但是如果我们想编译一个程序 ...
随机推荐
- [NLP-ASR] 语音识别项目整理(一) 语音预处理
简介 之前参与过114对话系统的项目,中间搁置很久,现在把之前做过的内容整理一下,一是为自己回顾,二是也希望分享自己看的内容,中间也遇到一些问题,如果您可以提一些建议将不胜感激. 114查询主要分 ...
- linux初学者-磁盘拉伸缩减篇
linux初学者-磁盘拉伸缩减篇 在系统的使用过程中,往往会出现这样的问题,由于刚开始无法估计需要的磁盘空间,导致后期磁盘空间不够,使得数据没地方存储,又或者后期磁盘空间过大,造成资源的浪费.这种在使 ...
- 三千字讲清TypeScript与React的实战技巧
很多时候虽然我们了解了TypeScript相关的基础知识,但是这不足以保证我们在实际项目中可以灵活运用,比如现在绝大部分前端开发者的项目都是依赖于框架的,因此我们需要来讲一下React与TypeScr ...
- java练习---6
//程序员:罗元昊 2017.9.24 import java.util.Scanner; public class L { public static void main(String[] args ...
- Promise异步编程解决方案
Promise是ES6中新增的异步编程解决方案,体现在代码中它是一个对象,可以通过 Promise 构造函数来实例化. 其最基本的使用 new Promise(function(resolve,rej ...
- python_0基础开始_day03
第三节 一.整形和布尔值的转换 int整型 python3: 全部都是整型 python2: 整型,长整型long 十进制转换二进制 # 将十进制的168转换为二进制 #得出结果 将十进制的168转 ...
- Redis总结(八)如何搭建高可用的Redis集群
以前总结Redis 的一些基本的安装和使用,大家可以这这里查看Redis 系列文章:https://www.cnblogs.com/zhangweizhong/category/771056.html ...
- 伽马变换(一些基本的灰度变换函数)基本原理及Python实现
1. 基本原理 变换形式 $$s=cr^{\gamma}$$ c与$\gamma$均为常数 可通过调整$\gamma$来调整该变换,最常用于伽马校正与对比度增强 2. 测试结果 图源自skimage ...
- 编码规范 | Java函数优雅之道(上)
导读 随着软件项目代码的日积月累,系统维护成本变得越来越高,是所有软件团队面临的共同问题.持续地优化代码,提高代码的质量,是提升系统生命力的有效手段之一.软件系统思维有句话“Less coding, ...
- spark学习(10)-RDD的介绍和常用算子
RDD(弹性分布式数据集,里面并不存储真正要计算的数据,你对RDD的操作,他会在Driver端转换成Task,下发到Executor计算分散在多台集群上的数据) RDD是一个代理,你对代理进行操作,他 ...