Qt 4.7.4 完美动态编译发布动态调试,以及静态编译发布
首先是准备工作,去QT主页下载独立的QT类库安装包以及完整QT SDK安装包,还有QT Creator for windows 版
下载地址:http://qt.nokia.com/downloads-cn 最新是 4.7.4 版
还有一个mingw 4.4.5 静态编译版,用来解决mingwm10.dll、 libgcc_s_dw2-1.dll,两个DLL依赖的问题
下载地址是:http://code.google.com/p/qp-gcc/downloads/list
四个文件分别是:
(1) qt-creator-win-opensource-2.3.1.exe // IDE 开发框架
(2) qt-win-opensource-4.7.4-mingw.exe // QT类库安装包
(3) Qt_SDK_Win_offline_v1_1_3_en.exe // QT SDK 完整安装包
(4) mingw-static-4.4.5-all.7z // mingw 静态编译完整版
准备好上面四个文件之后,就可以安装了,安装顺序以上面的(1)--(4)的顺序进行安装
下面说一下安装时需要注意的地方,
第一步:安装的是 qt-creator,安装的时候记得把它自带的 mingw 编译器选上(主要是为了这个 mingw 编译器)。假如默认安装到:C:\Qt\qtcreator-2.3.1
第二步:就是安装 QT 独立类库,由于它不包含编译器,因此在安装的时候有个选项,要你选择 mingw 编译器的路径,
指向 C:\Qt\qtcreator-2.3.1\mingw 目录就可以了。假如默认安装到:C:\Qt\4.7.4
第三步:就是安装完整版的QT SDK,默认安装到:C:\QtSDK
好了,接下来就是关键的静态编译了,打开 C:\Qt\4.7.4\mkspecs\win32-g++ 目录下的 qmake.conf 文件,
修改两个地方:
QMAKE_LFLAGS =
修改为
QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-auto-import-Wl,-enable-runtime-pseudo-reloc
再将
QMAKE_LFLAGS_DLL = -shared
修改为
QMAKE_LFLAGS_DLL = -static
然后打开“开始菜单”-->“程序”-->“Qt by Nokia v4.7.4 (MinGW OpenSource)”菜单下面的 Qt 4.7.4 Command Prompt 也就是QT 命令行,
先配置编译选项,然后再开始编译,这是命令行提示符停留在:C:\Qt\4.7.4 路径,输入以下配置命令:
configure -platform win32-g++ -release -opensource-static -fast -qt-sql-sqlite -plugin-sql-sqlite -no-qt3support -qt-zlib -qt-gif-qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -no-webkit -qt-style-windowsxp-qt-style-windowsvista -nomake examples -nomake docs -nomake demos
等待配置完成后,进入 src 目录,并进行编译,输入如下命令:
cd src // 进入源码目录
mingw32-make -i -k // 进行静态编译
等待几十分钟后就能编译成功,之后就可以进行第四步了。
第四步:把下载的 mingw 静态编译版的编译器 mingw-static-4.4.5-all.7z 解压到 C:\QtSDK\mingw 目录,为什么?
因为我们要用第三步安装的完整版的QT SDK中带的 qt-creator IDE来进行开发,而不是第一步安装的 qt-creator。
最后的设置,打开 qt-creator 之后,点击“工具”-->“选项”对话框,点击左边的“Qt4”选项,就能看到IDE自动检测到
的 qmake ,但是自动检测的 qmake 只能生成动态编译的程序,现在我们点击右上角的“添加”按钮,找到路径
C:\Qt\4.7.4\bin ,选中该路径中的 qmake.exe 文件,并命名为 “Qt 4.7.4 静态编译”,然后确定就完成了最后的设置。
现在我们来新建一个Qt Gui 应用,在目标设置的时候选择“桌面”,可以看到默认的动态MinGw编译器,以及我们自己
命名的静态MinGW编译器,如下图,记得静态编译的调试是无法生成的,因为我没有把调试也进行静态编译,只是把
发布进行静态编译了。虽然安装占用的空间比较大,但是省却了要调试的时候去修改Makefile.Debug文件的麻烦。
Qt 4.7.4 完美动态编译发布动态调试,以及静态编译发布相关推荐
- qt5.5 静态编译 mysql_QT5.3.2+mingw静态编译(生成exe大约14M)
在网上找了很久的QT静态编译方法,基本参考:http://www.baidu.com/link?url=3JiyMFpMziH5Qdw73NVnTg1wPb6JT9LywvOzCE6FAOE-LrtE ...
- 易语言MySQL静态编译,我说易语言静态编译太强大……
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 编译后的文件在virscan有14款软件误报 静态编译后我和我的小伙伴惊呆了-- NOD32你别逗我,玷污了这2%,求大神NOD32的报毒信息是怎么回事 ...
- 记录下 QT Linux 静态编译遇到的坑
记录下 QT Linux 静态编译遇到的坑 记录下 QT Linux 静态编译遇到的坑 - 貘吃馍的日志 - 网易博客 http://qbaok.blog.163.com/blog/static/10 ...
- Qt最新版5.14在Windows环境静态编译安装和部署的完整过程 VS 2019-Qt static link build Windows 32 bit/64 bit
文章目录 为什么要静态编译(static link) 1.源码下载/source code download 2. 编译工具下载/compiler download 编译环境选择:MinGW/MSVC ...
- apache 静态编译和动态编译参考
apache-2.2.22 编译安装笔记 一.静态编译 在使用./configure 编译的时候,即没有使用--enable-mods-shared=[module]或者--enable-[m ...
- Qt5.8 在windows下mingw静态编译
官方对编译一些条件介绍:https://doc.qt.io/qt-5/windows-requirements.html 在默认情况下,用QtCreator编译程序时,使用的是动态编译.编译好的程序在 ...
- Linux下静态编译的一个TIP
Linux下静态编译的一个TIP | 素包子 Linux下静态编译的一个TIP 2010年3月28日 baoz 阅读评论 linux下静态编译好处很多,一来是可以跨发行版(debian redhat ...
- 通过实战探究 GraalVM 静态编译
通过实战探究 GraalVM 静态编译 GraalVM 是什么 什么是 Java 静态编译 GraalVM 静态编译优点 GraalVM 静态编译缺点 Substrate VM 是什么 native ...
- DeepinUOS Linux QT5.12.10静态编译DTK教程
首先我们要去DTK开发者文档参观下,具体参观什么,你需要什么就参观什么 地址:https://docs.deepin.org 编译DTK需要编译以下三个东西: dtkcore dtkgui dtkwi ...
最新文章
- strcpy,memcpy和memmove区别
- AI寒冬将至?这10大突破点至关重要
- python有关迭代器和生成器的面试题_【面试题 | Python中迭代器和生成器的区别?】- 环球网校...
- ODAC(V9.5.15) 学习笔记(十七)主从模式
- 微软 python教程_最强福利——来自微软的Python学习教程(开发指南)
- u盾 签名pdf显示 “签名于修订版中删除”_Adobe Acrobat Reader DC for mac(免费pdf阅读)...
- 安装appcan后打开eclipse出错
- 弹性地基梁板实用计算_3款实用性高的农村别墅,造价低,越看越有韵味
- docker安装nginx并且部署前端项目
- 数值分析——Hermite插值
- Java利用poi-tl实现富文本HTML转Word
- 机器人编程按时巡线_一种智能巡线机器人以及控制方法与流程
- Spark实践的阶段性总结
- 【Unity】跨场景音乐资源不间断播放(可控音量)
- [clear] python 种子转磁力链
- 基于微信小程序的核酸检测系统源码
- python中clear和clear()
- Could not find multidex.jar (com.android.support:multidex:1.0.2).
- mongodb 10、mongodb从节点失联解决方法
- 今天15:00| ICML专场四,7位PhD来袭!
热门文章
- python import from class_Python: import vs from (module) import function(class) 的理解
- 数据结构之单链表(golang版)
- DVWA 黑客攻防实战(十五) 绕过内容安全策略 Content Security Policy (CSP) Bypass
- Codeforces 785 D.Anton and School - 2(组合数处理)
- 02.规划过程组表格-需求管理计划
- 深入浅出 Java Concurrency (33): 线程池 part 6 线程池的实现及原理 (1)[转]
- Android BOOTCLASSPATH详解
- OTA和Recovery系统升级流程介绍
- WINCE下如何设置/删除/查询这些环境变量
- ug11许可证文件路径安装在哪_Matlab2012a安装教程