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库的系统上是不能使用的.会提示缺少……库文件之类的错误.这就是动态编译的结果. 但是如果我们想编译一个程序 ...
随机推荐
- [leetcode] 106. Construct Binary Tree from Inorder and Postorder Traversal(medium)
原题地址 思路: 和leetcode105题差不多,这道题是给中序和后序,求出二叉树. 解法一: 思路和105题差不多,只是pos是从后往前遍历,生成树顺序也是先右后左. class Solution ...
- 小白学python-day05-作业(购物车程序)
购物车需求: 开始输入工资,然后出现购买商品的相关信息,输入编号进行购买 价格>工资提示余额不足,价格<工资提示 成功加入购物车,并且显示余额 然后将购买环节进行循环,直到用户退出购买 然 ...
- 基础篇-1.2Java世界的规章制度(下)
1 Java运算符 Java世界中的运算其实就是数学运算,而运算符就是其中的媒介. 算术运算符 操作符 描述 + 加法,对符号两边的数值相加 - 减法,符号左边的数减去右边的数 * 乘法,符号两边的数 ...
- 《HelloGitHub》第 40 期
<HelloGitHub>第 40 期 兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程. ...
- Linux中tree无法正常显示中文的解决方法
tree命令以树状图列出目录的内容. 命令 tree -L n 的时候往往是无法正常显示中文的 先开始我以为是tree命令对中文是不支持的,后来百度了一下,网上有几个解决办法 安装新的tree可以解决 ...
- 0 MapReduce实现Reduce Side Join操作
一.准备两张表以及对应的数据 (1)m_ys_lab_jointest_a(以下简称表A) 建表语句: create table if not exists m_ys_lab_jointest_a ( ...
- Linux平台 Oracle 19c RAC安装Part1:准备工作
一.实施前期准备工作 1.1 服务器安装操作系统 1.2 Oracle安装介质 1.3 共享存储规划 1.4 网络规范分配 二.安装前期准备工作 2.1 各节点系统时间校对 2.2 各节点关闭防火墙和 ...
- ld: warning: directory not found for option ''
iOS开发中经常遇到这样的警告,如图所示: 原因是存在未用到的目录. 解决方法:选择Build Settings,找到Search Paths中的Library Search Paths,如下图 删除 ...
- 一个C++的ElasticSearch Client
ElasticSearch官方是没有提供C++的client的:因此决定自己写一个,命名为ESClient https://github.com/ATinyAnt/ESClient(手下留星 star ...
- Gridea+GitHub搭建个人博客
某日闲余时间看到一篇介绍Gridea博客平台的文章,大概看了一下觉得此平台还不错,随即自己进入Gridea官网瞅了瞅.哇,这搭建过程也太简单了吧,比Hexo博客搭建要容易很多,而且还有后台管理客户端, ...