Qt5.4静态编译方法
静态编译,就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so或.lib)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。这样就可以发布单一文件的EXE程序了。
工具/原料
- Qt库
- Python
- Perl
- Ruby
安装Perl
- 1
双击从官网下载的安装包进入安装界面

- 2
安装时注意选择这两项

安装Python
- 1
双击从官网下载的安装包进入安装界面

- 2
安装完成后,需要将安装目录添加到系统环境变量Path中

安装Ruby
- 1
双击从官网下载的安装包进入安装界面

- 2
注意选择这一项

安装Qt
- 1
方法一:从官网下载源码zip压缩包直接解压即可
- 2
方法二:从官网下载对应编译器的安装包进行文件安装
- 3
安装完成后,需要将安装目录添加到系统环境变量Path中

静态编译Qt
- 1
打开命令行


- 2
输入gcc -v命令查看gcc编译器是否正确;配置正确,如下图所示

- 3
输入perl -v命令查看Perl解析器是否配置正确,配置正确显示如下图

- 4
输入python命令查看Python是否配置正确,正确显示如下图,按Ctrl+Z回车可以退出Python

- 5
切换到Qt源码目录,假设为D:\Qt
命令为:
D:
cd D:\Qt
上述路径可以根据自己的实际路径进行修改

- 6
输入如下命令进行配置
configure.bat -confirm-license -opensource -platform win32-g++ -mp -release -static -prefix "C:\Qt\5.4.0_MinGW_static" -qt-sql-sqlite -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit -skip qtwebengine
其中的"C:\Qt\5.4.0_MinGW_static"为生成的静态编译代码库的路径,可以根据自己的需求进行相应更改

- 7
配置完成如下图所示

- 8
输入以下命令进行编译
mingw32-make
过程较长,大约几小时
- 9
输入以下命令进行安装
mingw32-make install
安装完成如下图所示

配置Qt Creator
- 1
添加上一部编译好的静态Qt版本
Qt Creator -> Tools -> Options -> Build & Run -> Qt Versions,点击Add添加qmake,如图所示


- 2
添加完成,点击“Apply”

- 3
设置套件
切换到“Kits”选项卡,点击“Add”如图进行配置,完成后点击OK退出设置

- 4
打开C:\Qt\5.4.0_MinGW_static\mkspecs\win32-g++\qmake.conf,找到QMAKE_LFLAGS和QMAKE_LFLAGS_DLL,将后面改成-static,如图所示

如何使用静态编译库
- 1
至此Qt5.4.0静态编译配置完成
- 2
新建工程时选择静态编译的套件,如图所示

- 3
对工程进行编译时选择Release版本,如图所示

Qt5.4静态编译方法的更多相关文章
- QT5.7静态编译(使用VS2013与VS2015编译,XP可用,有详细configure脚本。VS下Qt插件的配置。编译选项加上-mp可以开启多线程编译,编译速度提高2倍以上)
http://blog.csdn.net/u011964923/article/details/52886908 configure -confirm-license -opensource -pla ...
- Qt5.1 静态编译
下载Qt5.2.1的Qt-every 解压 cd qt-everywhere-opensource-src-5.1.1/ ./configure -prefix 安装目录 -release -sta ...
- Qt 静态编译发布和动态编译发布
静态编译发布 你写了一个小型Qt程序,发布的时候不想要一大堆dll文件,就只想打包成一个exe文件,那么就需要用到静态编译. 下面的教程就是Qt静态编译环境配置 Qt5.6静态编译包下载地址 1.下载 ...
- golang静态编译
golang 的编译(不涉及 cgo 编译的前提下)默认使用了静态编译,不依赖任何动态链接库. 这样可以任意部署到各种运行环境,不用担心依赖库的版本问题.只是体积大一点而已,存储时占用了一点磁盘,运行 ...
- 静态编译Qt5.4.1和Qt WebKit
图灵社区文章地址:http://www.ituring.com.cn/article/195148WebKit是个好东西,做爬虫.显示网页还是想用HTML来做桌面应用的界面都可以用他,不过一直以来都觉 ...
- 静态编译Qt5.4.1和Qt WebKit(网事如风的blog)good
blog文章地址:http://godebug.org/index.php/archives/133/ WebKit是个好东西,做爬虫.显示网页还是想用HTML来做桌面应用的界面都可以用他,不过一直以 ...
- QT5静态编译教程,主要针对vs2012(渡世白玉)
QT5,VS2012静态编译,所有的库准备充分的话qwebkit也可以静态编译通过,但是我编译的版本使用中如果用了QWEBVIEW控件在连接时会出错. 注:我自己编译的环境是:win server 2 ...
- Win7下静态编译QT5.12源码
官方参考文档:https://doc.qt.io/qt-5/build-sources.html CSDN博客:https://blog.csdn.net/GG_SiMiDa/article/deta ...
- QT5.4.2静态编译(包含QtWebKit),在VS2013上创建项目,并成功运行
Qt项目发布的exe程序,默认是以动态链接形式的,这样发布后的程序会附带好多Qt自己的dll库,这样文件数量不仅多,而且移植到其他电脑上的时候,还可能会遇到,提示缺其他库等各种运行不起 ...
随机推荐
- PHP+mysql统计排名第几位
正在开发积分系统!其中有一项数据是显示用户积分排名?一下子想不到太好的办法! 最简的情况是统一某一字段的积分数据排名?比如积分字段,里面存的整数! 如何排名?或者说如何获得他在排序中的序列位次呢? s ...
- 自己动手开发编译器(四)利用DFA转换表建立扫描器
上回我们介绍了两种有穷自动机模型——确定性有穷自动机DFA和非确定性有穷自动机,以及从正则表达式经过NFA最终转化为DFA的算法.有些同学表示还是难以理解NFA到底怎么转化为DFA.所以本篇开头时我想 ...
- jQuery CSS3 照片墙
<html> <head> <style type="text/css"> .picture-wall-container{ position: ...
- iOS常见异常Exec_Bad_Access问题解决办法
iOS常见异常Exec_Bad_Access问题解决办法 在iOS开发中,经常遇到Exec_Bad_Access异常,导致程序奔溃问题,一般这个问题都是因为过早的release对象,然后又对该 ...
- C#的Reflection总结
什么是反射 在.NET中的反射也可以实现从对象的外部来了解对象(或程序集)内部结构的功能,哪怕你不知道这个对象(或程序集)是个什么东西,另外.NET中的反射还可以运态创建出对象并执行它其中的方法. 反 ...
- AndroidManifest.xml 文件里面的内容介绍
<?xml version="1.0" encoding="utf-8"?> <!--package 包表示整个java应用程序的主要包名,而 ...
- MCS-51单片机存储器结构
MCS-51的存储器可分为四类: 程序存储器 一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之.那么设 ...
- ETL工具框架开源软件
http://www.oschina.net/project/tag/453/etl 开源ETL工具 Kettle Talend KETL CloverETL Apatar Scriptella ET ...
- Linux企业级项目实践之网络爬虫(26)——线程池
一旦有一个抓取请求开始,就创建一个新的线程,由该线程执行任务,任务执行完毕之后,线程就退出.这就是"即时创建,即时销毁"的策略.尽管与创建进程相比,创建线程的时间已经大大的缩短,但 ...
- HDU-2571命运
Problem Description 穿过幽谷意味着离大魔王lemon已经无限接近了!可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机 ...