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

首先,在编译之前,我需要下载mingwqt-everywhere-opensource-src-4.8.2qt-everywhere-opensource-src-5.1.1

然后,准备开始编译了,当然先得把压缩包解压到一个合适的地方。
我这里的路径是"C:\Qt"下面。

解压完毕后,先试着编译Qt4.8.2。
configure命令为:

  1. configure -confirm-license -opensource -prefix "C:\Qt\Qt4.8.2" -debug-and-release -static -platform win32-g++ -nomake demos -nomake examples -nomake tests -fast

使用的选项说明:

-confirm-license -opensource 选择开源协议并确认
-prefix "C:\Qt\Qt4.8.2" 指定安装目录为"C:\Qt\Qt4.8.2"
-debug-and-release 编译debug和release版
-static 编译成静态库
-platform win32-g++ 使用mingw编译
-nomake demos -nomake examples -nomake tests 不编译这些不需要的东西
-fast 快速编译

在控制台下进入"C:\Qt\qt-everywhere-opensource-src-4.8.2",运行configure。
在编译之前,需要改一个地方:
找到"qt-everywhere-opensource-src-4.8.2\src\3rdparty\webkit\Source\WebCore\platform"下的DefaultLocalizationStrategy.cpp文件,第327行:

  1. return WEB_UI_STRING("Look Up “<selection>”", ...);

把它改成这样:(注意引号)

  1. return WEB_UI_STRING("Look Up <selection>", ...);

否则编译会报错。

然后运行mingw32-make开始编译。
编译完毕后,找到"qt-everywhere-opensource-src-4.8.2\src\winmain"下的Makefile.Debug文件,第215行:

  1. @$(CHK_DIR_EXISTS) c:$(INSTALL_ROOT)/Qt/Qt4.8.2/lib/pkgconfig $(MKDIR) c:$(INSTALL_ROOT)/Qt/Qt4.8.2/lib/pkgconfig

改成:(注意$(CHK_DIR_EXISTS)和目录的斜杠)

  1. @if not exist c:$(INSTALL_ROOT)\Qt\Qt4.8.2\lib\pkgconfig $(MKDIR) c:$(INSTALL_ROOT)\Qt\Qt4.8.2\lib\pkgconfig

改完后用同样的方式修改Makefile.Release。

最后mingw32-make install,大功告成。

接下来编译Qt5.1.1。
首先还是configure命令:

  1. configure -confirm-license -opensource -prefix "C:\Qt\Qt5.1.1" -debug-and-release -static -platform win32-g++ -opengl desktop -no-angle -nomake examples -nomake tests -skip qtwebkit

使用的选项说明:(重复的就不写了)

-opengl desktop 选择desktop的opengl,不这样玩编译会挂
-no-angle 不使用angle,否则编译会挂
-nomake examples -nomake tests 不编译这些东西。其中examples,参加编译的话install会挂
-skip qtwebkit 不编译qtwebkit,否则很麻烦

在控制台下进入"C:\Qt\qt-everywhere-opensource-src-5.1.1\qtbase",运行configure。
之后依次mingw32-make、mingw32-make install,大功告成。


参考文章:

http://blog.csdn.net/markl22222/article/details/20734085

用mingw静态编译Qt4.8.2和Qt5.1.1(需要修改不少源码)的更多相关文章

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

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

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

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

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

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

  4. Android : 修改内核源码 and 编译、打包成新的boot.img

    一.Android内核源码的下载: 1.Google GIT地址: $ git clone https://android.googlesource.com/kernel/common.git $ g ...

  5. 亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)

    下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0- ...

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

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

  7. Windows下静态编译Qt4

    既然是静态编译,那就要编译出来的程序不信赖于任何dll文件.首先下载qt-win-opensource-4.7.4-mingw.exe: http://get.qt.nokia.com/qt/sour ...

  8. qt-5.6.0 移植之qt源码编译

    其实这只是给自己看的一个configure选项笔记,没有太多的东西. 首先: 下载qt5.6的源码: 地址: http://download.qt.io/archive/qt/5.6/ 下载完解压: ...

  9. [delphi]修改indy源码后重新编译

    http://blog.csdn.net/nerdy/article/details/8702568 虽然indy有一身的毛病,但是一般情况下使用起来还是多方便的. 今天在做一个使用到indy的程序的 ...

随机推荐

  1. CSDN编程挑战——《-3+1》

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/user_longling/article/details/24674033 -3+1 题目详情: 有 ...

  2. Oracle使用——PLSQL查询表结构并导出EXCEL

    背景 有一次需要查询Oracle数据库中的所有表接口并且导出excel,方法记录如下 使用 使用PLSQL工具查询表结构,SQL语句如下 SELECT B.TABLE_NAME AS '表名', C. ...

  3. dnspython

    dnspython 一个Python实现的一个DNS工具包,利用其查询功能来实现dns的服务监控及解析结果的校验. 安装 pip install dnspython 解析域名为IP from dns ...

  4. 记一次Celery的仇

    背景:项目在公司的一台虚拟机上运行(32核+32G).其他人的项目也在这台物理机上运行..我的训练代码是单进程的,跑完一次需要大约10h(数据量大逮着一个核使劲跑..):训练是一个Celery定时任务 ...

  5. composer基本使用

    一.Composer的安装 1.下载Composer 2.Composer安装 1).Composer安装前请确保已经安装了php:打开命令行窗口输入php -v可以查看php的当前版本号. 3.局部 ...

  6. 30 Cool Open Source Software I Discovered in 2013

    30 Cool Open Source Software I Discovered in 2013 #1 Replicant – Fully free Android distribution Rep ...

  7. Python基础10 回顾

    从最初的"Hello World",走到面向对象,该回过头来看看,教程中是否遗漏了什么. 我们之前提到一句话,"Everything is Object".那么 ...

  8. PHP 试题(1)

    1.__FILE__表示什么意思?(5分)文件的完整路径和文件名.如果用在包含文件中,则返回包含文件名.自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一 ...

  9. lodap问题集锦

    1.分页打印时,同一行显示在不同页内 ,调整行分页粒度 LODOP.SET_PRINT_STYLEA(0, "TableRowThickNess", 40);

  10. python新知识

    # 强制字符串转化 repr(1.1 + 2.2) # 字符串换行 a = "hello, world. " \ "it's a nice day. " \ & ...