大致流程:

1.安装Qt(源码版)以及其他必要的环境

2.编译/安装

3.配置

4.使用

~~~~~~~~~~正文分割线~~~~~~~~~~

1.安装Qt(源码版)

1.1 下载Qt(两个地址二选一即可,其实安装安卓那个版本也是可以的,我用的就是那个版本。不过如果不想开发安卓,用这个版本就行了)

安装包:Qt 5.4.0 for Windows 32-bit (MinGW 4.9.1, 852 MB)

官网地址:http://www.qt.io/download-open-source/#

1.2 安装Qt

我安装到了  c:\Qt\Qt5.4.0

注意:源码那里也要勾上,默认是不勾选的

注:安装好Qt后,将bin目录添加到PATH环境变量中

1.4 安装Perl(5.8版本或者更高,两个地址二选一即可)----- (好像可以不用安装)

安装包:Windows Installer (MSI)

官网地址:http://www.activestate.com/activeperl/downloads

1.3 安装 Python(2.7版本或者更高,两个地址二选一即可)

安装包:Python 3.4.4

官网地址:https://www.python.org/downloads/

注:安装好Python后,将安装目录添加到PATH环境变量中

上述两个环境变量:C:\Qt\Qt5.4.0\5.4\mingw491_32\bin;C:\Python27

2.编译/安装

2.1 打开命令行

2.2 检查

输入以下命令看看 gcc 编译器是否配置正确,

gcc -v

再输入以下命令看看 perl 解释器是否配置正确perl -v

输入以下命令看看 python 是否配置正确python
        按 Ctrl + Z 回车,可以退出 python

2.3 切换到源码目录

cd C:\Qt\Qt5.4.0\5.4\Src

三、编译准备 可以在编译前改
我把源码解压到C盘,我的路径是C:\qt-everywhere-opensource-src-5.5.,编辑C:\qt-everywhere-opensource-src-5.5.\qtbase\mkspecs\win32-g++\qmake.conf,找到QMAKE_LFLAGS和QMAKE_LFLAGS_DLL,后面赋值为 -static
QMAKE_LFLAGS = -static
QMAKE_LFLAGS_DLL = -static
保存,退出(如果不做这个修改,生成的执行文件要依赖libgcc_s_dw2-.dll,libstdc++-.dll,libwinpthread-.dll)。

2.4 配置(1分钟左右)

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

2.5 编译(3小时左右)(本处为8个线程编译,电脑好的可以开更多的线程)

mingw32-make -j8

2.6 安装(根据硬盘性能,大约需要几分钟到20分钟左右)

mingw32-make install -j8

2.7 后续

在编译/安装好后,我们可以把源码目录删了,这可以释放出大约10G的空间,很可观

3.配置

3.1 添加一个Qt版本

3.1.1 打开版本编辑器

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

3.1.2 按照下图添加,然后点Apply

3.2 设置编译器(如果有则不需要设置)

按照下图添加,然后点Apply

3.3 设置套件

按照下图添加

3.4 配置编译器

用记事本打开 C:\Qt\5.4.0_MinGW_static\mkspecs\win32-g++\qmake.conf

找到 QMAKE_LFLAGS 和 QMAKE_LFLAGS_DLL

将后面都改成 -static

4.使用

4.1 打开Qt,新建工程,选择静态编译的套件

4.2 左下角选择release模式

4.3 Ctrl+B编译,然后,静态编译版本的exe就完成了~~是不是很简单呢

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

Qt for Windows:Qt 5.4.0 MinGW 静态编译版本制作 (转)的更多相关文章

  1. QT全平台设置图标,全平台静态编译 good

    1.  概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装 ...

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

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

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

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

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

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

  5. Qt5.8 在windows下mingw静态编译

    官方对编译一些条件介绍:https://doc.qt.io/qt-5/windows-requirements.html 在默认情况下,用QtCreator编译程序时,使用的是动态编译.编译好的程序在 ...

  6. Android 开发进程 0.35 升级编译版本Android12

    Android12升级 工作需要升级到编译版本31 在这里记录一下遇到的问题. 错误:Manifest merger failedManifest merger failed 这个问题通常搜到的答案是 ...

  7. 记录下 QT Linux 静态编译遇到的坑

    Qt下静态编译Qt,根据我的经验,如果按照Windows下那种直接拿官方sdk安装之后的文件来编译是行不通的,需要直接下载Qt的source包,目前诺基亚的源码叫做qt-everywhere-open ...

  8. VS2010使用静态编译的qt库(Qt 5)

    Qt 5引入了一种新的编写方式. Qt开发界面很方便,但发布程序就不那么方便了,你的把引用到的dll一起发布才行,要是能静态编译就好了,发布的时候只有一个exe多方便. 虽然以前为了方便,直接安装的q ...

  9. VS2010使用静态编译的qt库

    Qt开发界面很方便,但发布程序就不那么方便了,你的把引用到的dll一起发布才行,要是能静态编译就好了,发布的时候只有一个exe多方便. 虽然以前为了方便,直接安装的qt-windows-opensou ...

随机推荐

  1. ARCGIS接口详细说明

    ArcGIS接口详细说明 目录 ArcGIS接口详细说明... 1 1.      IField接口(esriGeoDatabase)... 2 2.      IFieldEdit接口(esriGe ...

  2. 我的美国(北美)计算机CS实习面试经验分享

    过去的一年多里,参加了一些面试,虽然面过的公司不多,但都从头一直走到尾.毕竟自己也是花了大量的时间和精力在这一场场的面试里.所以,就絮叨下自己的一些经验,希望能给在美国找实习找工作的同学们提供一点点帮 ...

  3. Xcode5 配置 github

    首先,要在github上,进行如下的操作: 1. github 官网 https://github.com  注册github账号. 2. 创建一个repository,命名为项目的名称,如 Gith ...

  4. jQuery.on() 函数详解

    on() 函数用于为指定元素的一个或多个事件绑定事件处理函数. 此外,你还可以额外传递给事件处理函数一些所需的数据. 从jQuery 1.7开始,on()函数提供了绑定事件处理程序所需的所有功能,用于 ...

  5. 关于ajax提交的公共接口的一大用处

    在项目框架搭建的时候,就写了ajax提交的公共接口,是想统一的日志和处理ajax返回的错误信息. 今天,却又帮我解决了另外一个问题:每次点开某个页面,有一个ajax请求总是会调用两次,于是打开chro ...

  6. mysql 时间戳按指定格式(Y-m-d)取出

    之前做采集脚本,把采集的时间按unix时间戳的形式取出    那么在写sql语句的时候,需要按时间查询相应的记录,页面传进来的$time 是'2014-01'之类的字符串,那么怎么写sql呢 $sql ...

  7. 【搜索引擎Jediael开发笔记1】搜索引擎初步介绍及网络爬虫

    详细可参考 (1)书箱:<这就是搜索引擎><自己动手写网络爬虫><解密搜索引擎打桩实践> (2)[搜索引擎基础知识1]搜索引擎的技术架构 (3)[搜索引擎基础知识2 ...

  8. 利用Azure Automation实现云端自动化运维(4)

    在上述基本准备工作做完后,wo们看看如何实现利用Azure Automation实现定时自动开关机的操作,这种场景非常适合Dev/Test环境,因为Azure的虚拟机是按照分钟收费的,所以我们可以在开 ...

  9. 让Maven正确处理javac警告

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.1:compile (default ...

  10. linux系统监控常用工具

    linux系统监控常用工具 一.系统核心工具包(coreutils) 1./bin/df 报告系统的磁盘空间用量 df -h  显示磁盘分区fdisk -l 2./bin/uname 显示系统信息 u ...