QT5.12静态编译手册

一、概要

在Windows平台下开发的QT应用程序,使用官方下载的QTCreator编译程序(动态编译),部署到客户机器上需要加上QT的DLL库文件,文件多且占用空间大,同时需要安装C++的运行库(有的Windows版本会安装出错,比如未打补丁的windows7)。使用静态编译,部署时不需要额外的QT和C++运行库的DLL,且占用磁盘空间较少。本文档描述QT5.12在Windows平台下使用VS2015静态编译,以及设置QT Creator 4.4.1(Community)的方法及操作说明。对于Linux及其他平台请参考QT源码下README文档,编译方法类似。

二、编译说明

2.1 编译前准备

(1)QT源代码下载

QT 5.12.0源码下载地址:https://download.qt.io/archive/qt/5.12/5.12.0/single/

(2)编译工具安装

需要安装以下工具:

A.Visual Studio 2012 及以后版本

B.Perl 5.12及以后版本 [http://www.activestate.com/activeperl/]

C.Python2.7及以后版本 [http://www.activestate.com/activepython/]

D.Ruby 1.9.3及以后版本 [http://rubyinstaller.org/]

(3)开始编译

打开VS2015开发人员命令提示控制台程序

在控制台中使用cd命令切换到qt源码根目录

修改源码里的qtbase\mkspecs\common\msvc-desktop.conf文件,将-MD改为-MT

【配置方法A】

configure.bat -static -prefix "C:\QT\QT-5.12" -confirm-license -opensource  -debug-and-release -platform win32-msvc  -nomake examples -nomake tests  -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp -no-feature-d3d12

configure详细命令参数说明可通过configure –help获取

输入

nmake

命令进行编译,编译时间较长,约2小时。为了减少编译时间可采取配置方法B。

nmake install

进行安装。

【配置方法B】

为了加快编译速度,配置加入jom进行多线程编译。Jom可从[https://iso.mirrors.ustc.edu.cn/qtproject/official_releases/jom/jom_1_1_3.zip]这个地址下载,下载完成后解压,将解压路径加入系统环境变量中。使用此方法电脑CPU占用率比较高。

configure.bat -static -prefix "C:\QT\QT-5.12" -confirm-license -opensource  -debug-and-release -platform win32-msvc  -nomake examples -nomake tests  -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp -make-tool jom -no-feature-d3d12

如果使用configure.bat出现错误“You cannot configure qt separately within a top-level build”,需要在configure同目录新建以上2个空白文件(.qmake.stash和.qmake.super)。

输入

jom

命令进行编译,编译时间约1小时。

编译完成后执行安装命令

jom install

进行安装

三、编译文档

QT Creator加载文档是*.qch格式,需要编译源码。编译需要先安装LLVM,本文安装的LLVM版本为11.0.0。

进入qttools\src\qdoc目录,找到qdoc.pro,用文本工具编辑。增加LLVM头文件和库文件路径。

win32:CONFIG(release, debug|release): LIBS += -L'C:/Program Files (x86)/LLVM/lib/' -llibclang
else:win32:CONFIG(debug, debug|release): LIBS += -L'C:/Program Files (x86)/LLVM/lib/' -llibclangd
else:unix: LIBS += -L'C:/Program Files (x86)/LLVM/lib/' -llibclangINCLUDEPATH += 'C:/Program Files (x86)/LLVM/include'
DEPENDPATH += 'C:/Program Files (x86)/LLVM/include

运行

jom

命令编译qtdoc.exe,编译时间较长约1小时。

编译完成后执行

jom install_docs

安装文档

四、QT Creator配置

(1)依次打开菜单“工具”-“选项”,弹出“选项”对话框

(2)在“QT Versions”选项卡中“添加”编译好的qmake.exe文件

(3)在“构建套件(Kit)”中,添加编译好的静态版本qt。

(4)在左侧菜单栏中选中“帮助”,之后点击“文档”选项卡,点击“添加”选择之前编译安装的qch文件

QT5.12静态编译手册相关推荐

  1. qt5.5 静态编译 mysql_QT5.3.2+mingw静态编译(生成exe大约14M)

    在网上找了很久的QT静态编译方法,基本参考:http://www.baidu.com/link?url=3JiyMFpMziH5Qdw73NVnTg1wPb6JT9LywvOzCE6FAOE-LrtE ...

  2. 【Qt】Qt5.12版本编译Oracle驱动教程

    00. 目录 文章目录 00. 目录 01. Qt5.12安装 02. Qt安装注意事项 03. Qt版本和Oracle安装路径说明 04. Qt5.12编译Oracle驱动(使用MinGW 64位) ...

  3. Ubuntu 22.04 Qt5.12.9编译出现“cannot find -lGL”解决

    在Linux系统下安装好Qt5,打开Qt Creator新建一个最简单的工程,编译却出现"cannot find -lGL"错误. 在网上搜索解决方法,找到的方案一:执行apt-g ...

  4. java zlib1.dll,zlib1.2.11静态编译

    1.进入官网http://zlib.net/,下载且解压zlib1211.zip: 2. 打开已解压的zlib-1.2.11目录,找到win32文件夹 3.将Makefile.msc复制到上一层,也就 ...

  5. DeepinUOS Linux QT5.12.10静态编译DTK教程

    首先我们要去DTK开发者文档参观下,具体参观什么,你需要什么就参观什么 地址:https://docs.deepin.org 编译DTK需要编译以下三个东西: dtkcore dtkgui dtkwi ...

  6. Qt最新版5.12在Windows环境静态编译安装和部署的完整过程(VS2017)

    文章目录 为什么要静态编译 1.源码下载 2. 编译工具下载 ActivePerl Python Ruby 编译环境选择 3.编译 1.修改源码里的qtbase\mkspecs\common\msvc ...

  7. LibreCAD v2.2.0源码编译,使用VS2019+Qt5.12.9+Boost1.71.0环境

    零.前言 LibreCAD is a fork of QCAD community edition version 2.0.5.0;therefore, any modifications of or ...

  8. Qt5.14.2MinGW-32静态编译及压缩过程配置教程

    目录 下载 下载Qt5.14.2 下载upxn 下载Python2 安装 检查配置 检查perl版本 检查python版本 静态编译 配置 编译 安装 新增静态编译环境 添加Qt Version 添加 ...

  9. Qt5.10.1在Windows平台下进行静态编译

    本文最后更新于2018-6-20,可能会因为没有更新而失效.如已失效或需要修正,请联系我! Qt静态编译的最大好处就是可以直接产生能够不依靠多余的dll运行的exe文件, 而且exe文件会比动态编译的 ...

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

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

最新文章

  1. 最前沿:大规模深度强化学习的发展
  2. 叶明回归IBM 负责大中华区合作伙伴业务
  3. PyTorch基础-使用卷积神经网络CNN实现手写数据集识别-07
  4. Xposed是如何为所欲为的?
  5. [学习总结]7、Android AsyncTask完全解析,带你从源码的角度彻底理解
  6. [php] 高级教程
  7. C++调用Go方法的字符串传递问题及解决方案
  8. win8学习--------计时器
  9. java 内部类序列化_Gson如何序列化内部类
  10. pycharm 快捷使用
  11. Configure VNC in RHEL 7
  12. FLEX地图应用教程集
  13. K近邻算法,Matlab实现
  14. JQuery仿百度有啊人气排行特效演示
  15. Fern wifi cracker 无线破解工具——图解
  16. iOS 音乐播放器之锁屏歌词+歌词解析+锁屏效果
  17. 妇科癌症中的肠道菌群:病因、治疗潜力
  18. Artfinity基金会理事 肖书阳:资产上链促进区块链真正落地,让实物更有价值
  19. 术语FXO和FXS的含义是什么?
  20. Unity 粒子 基础

热门文章

  1. 【cvpr2022】ReSTR: Convolution-free Referring Image Segmentation Using Transformers
  2. 《中华颂》朗诵比赛准备
  3. 计算机主板高清图解 清华同方,清华同方bios设定图解
  4. 举个栗子!Tableau 技巧(145):实现行级的子类别扩展
  5. oracle占位符怎么打,oracle所支持的占位符是什么
  6. java 按英文名排序_输入5种水果的英文名称,用java编写一个程序,输出这些水果名称按照字典出现的先后循序输出?...
  7. 解决JBX常见问题最权威的办法(来自borland)
  8. python编程游戏-9个Python编程小游戏,有趣又好玩,简直太棒了
  9. volatility使用
  10. 海康摄像头4G内网连接方案