官方对编译一些条件介绍:https://doc.qt.io/qt-5/windows-requirements.html

在默认情况下,用QtCreator编译程序时,使用的是动态编译。编译好的程序在运行时需要另外加上相应的Qt库文件,一大堆dll文件。如果想将生成的程序连同所需要的库一起完整地打包成一个可执行程序,那就需要使用静态编译。

在win7 x64 静态编译制作过程如下:

1. 安装Qt,全部勾选安装.   qt-opensource-windows-x86-mingw530-5.8.0.exe

2. 安装Perl, 下载地址:https://www.activestate.com/activeperl/downloads

安装目录:D:\ProgramFiles\Perl64

环境变量安装过程自动添加的,如果没有添加,手动添加:

D:\ProgramFiles\Perl64\site\bin;

D:\ProgramFiles\Perl64\bin;

3. 安装Python,Windows x86 executable installer 下载地址: https://www.python.org/downloads/

安装过程记得勾选添加PATH环境变量。

安装目录:D:\ProgramFiles\Python36-32

环境变量安装过程自动添加的,如果没有添加,手动添加:

D:\ProgramFiles\Python36-32\Scripts\;

D:\ProgramFiles\Python36-32\;

4.打开Qt 5.8 for Desktop (MinGW 5.3.0 32 bit)

4.1 输入以下命令检查gcc编译器配置是否正确

gcc -v

4.2  输入以下命令检查perl解释器配置是否正确

perl -v

4.3 输入以下命令检查python配置是否正确

python

按ctrl+z回车,退出python

5.在D:\ProgramFiles\Qt\Qt580\5.8新建一个文件夹mingw53_32_static,

切换到Qt的源码目录

cd D:\ProgramFiles\Qt\Qt580\5.8\Src

运行命令:

configure.bat -confirm-license -opensource -platform win32-g++ -debug-and-release -static -prefix "D:\ProgramFiles\Qt\Qt580\5.8\mingw53_32_static" -qt-sqlite -qt-zlib -qt-libjpeg -qt-libpng -qt-xcb -qt-xkbcommon -qt-freetype -qt-pcre -qt-harfbuzz -opengl desktop -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebengine -skip qtwebview -skip qt3d

注:这里配置的时候,跳过了qtwebengine、qtwebview、qt3d,如果需要这些模块可以去掉skip

6.编译(大概需要3小时左右)

mingw32-make -j2

注:本处为2个线程编译,电脑好的可以开更多的线程,编译速度也更快

7.安装(需要30分钟左右,硬盘好的话会快点)

mingw32-make install

8.新增静态编译

打开Qt Creator -> 工具 -> 选项 -> 构建和运行 -> Qt Versions

添加版本后,点击应用。

构建套件:克隆一个,修改,注意Qt版本一定要记得选对。修改后,点击应用

9.配置编译器

记事本打开D:\ProgramFiles\Qt\Qt580\5.8\mingw53_32_static\mkspecs\win32-g++\qmake.conf

添加 一行QMAKE_LFLAGS = -static,修改 QMAKE_LFLAGS_DLL其值为-static

10.新建工程选择 静态编译套件,编译出来就可以直接运行exe程序了。编译过程很慢,发布的时候最好选用release的,release的程序体积比debug小很多。

Qt5.8 在windows下mingw静态编译的更多相关文章

  1. Qt5.10.1 在windows下vs2017静态编译

    1.在计算机上安装python库和perl库(因为后续的静态编译需要用到这两种语言),可以在命令行敲击“python”和“perl -v”检查是否安装成功. 2.修改msvc-desktop.conf ...

  2. Windows下MinGW跨平台编译和使用log4cpp

    Log4cpp 是C++开源日志库,为 C++ 应用程序开发中提供了日志的追踪和调试功能,基于 LGPL 开源协议,移植自 java 的日志项目 log4j, 并在 api 上保持了一致性. 1. 环 ...

  3. 在Windows下使用MinGW静态编译Assimp

    使用MinGW静态编译Assimp 到了5月份了,没有写一篇日志,于是自己从知识库里面拿出一篇文章充数吧.这次将要解说怎样在Windows下使用MinGW静态编译Assimp. Assimp是眼下比較 ...

  4. 在Windows通过使用MinGW静态编译Assimp

    使用MinGW静态编译Assimp 到了5月份了.没有写一篇日志,于是自己从知识库里面拿出一篇文章充数吧.这次将要解说怎样在Windows下使用MinGW静态编译Assimp. Assimp是眼下比較 ...

  5. Qt for Windows:Qt 5.4.0 MinGW 静态编译版本制作 (转)

    大致流程: 1.安装Qt(源码版)以及其他必要的环境 2.编译/安装 3.配置 4.使用 ----------正文分割线---------- 1.安装Qt(源码版) 1.1 下载Qt(两个地址二选一即 ...

  6. 用mingw静态编译Qt4.8.2和Qt5.1.1(需要修改不少源码)

    因为一些乱七八糟的原因,我需要用mingw静态编译Qt4.8.2和Qt5.1.1.经历了一天的折腾之后,自觉编译一下Qt还是件颇为麻烦的事情,故将过程略作总结,以备不时之需. 首先,在编译之前,我需要 ...

  7. windows 7下mingw+msys编译ffmpeg

      windows 7下mingw+msys编译ffmpeg   1-->下载安装MingW,mingw-get-inst-20120426.exe  http://sourceforge.ne ...

  8. windows下用vs2010编译ffmpeg

    转载自;http://q1q2q3q4q5q6ln.blog.163.com/blog/static/500794332014666536283/ (注意:请务必先阅读:七,后记补充:) ffmpeg ...

  9. 【转】Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持

    Windows下使用VS2008编译OpenCV2.1 添加Intel TBB和Python支持 步骤: 1.仔细阅读OpenCV官网上的InstallGuide:http://opencv.will ...

随机推荐

  1. [CF1091D]New Year and the Permutation Concatenation

    link 题目大意 给$n!$个$n$的排列,按字典序从小到大连成一条序列,例如$3$的情况为:$[1,2,3, 1,3,2, 2,1,3 ,2,3,1 ,3,1,2 ,3,2,1]$,问其中长度为$ ...

  2. MyEclipse中的Tomcat跑大项目时内存溢出:permgen space

    点击菜单栏的“Run”-"Run Configurations",在打开的窗口中点击“Arguments”选项卡. 在VM arguments中内容最下边(加上)输入:-Xms25 ...

  3. (注意格式,代替C++的getchar())汉字统计hdu2030

    汉字统计 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  4. linux command ------ tar

    -c: compress archives -x:decompress archives -t:check archives -z:whether it has the attribute of gz ...

  5. mongodb的备份和还原

    1.首先把mongodb的bin加入环境变量 2.备份 我们使用mongodb内置的mongodump mongodump -h dbhost -d dbname -o dbdirectory 例如: ...

  6. 推荐几个精致的web UI框架及常用前端UI框架

    1.Aliceui Aliceui是支付宝的样式解决方案,是一套精选的基于 spm 生态圈的样式模块集合,是 Arale 的子集,也是一套模块化的样式命名和组织规范,是写 CSS 的更好方式. git ...

  7. oracle解除锁表【原】

    在日常操作中,经常会有不小心被锁表的情况发生 一般造成原因有: 开发人员不小心执行了 for update 查询语句后,没有解锁 不合理代码中开启事务(begin transaction)后,没有关闭 ...

  8. jdk1.6 反射性能对比【原】

    ReflectPerformance.java package aaa.bbb.ccc; import java.lang.reflect.Method; public class ReflectPe ...

  9. 【推荐】Nginx基础知识之————多模块(非覆盖安装、RTMP在线人数实例安装测试)

    说明:已经安装好的nginx,需要添加一个未被编译安装的模块,需要怎么弄呢? 具体:这里以安装第三方nginx-rtmp-module和nginx-accesskey-2.0.3模块为例,nginx的 ...

  10. PHP第三方登录—OAuth2.0协议

    第2章 OAuth授权流程详解