编译Qt(亲测可以通过编译)

自动安装包括在线安装的QT是不包括静态库的,给发行Qt带来困难。为了使用Qt的静态库,为此需要自己动手编译Qt,以下为可以编译通过的方式,使用Win10家庭版操作系统,其他的不可以(包括,说什么字符问题)

目前使用只有release和Profile版本可以用,Debug暂时有问题,还没有找到解决方案部分引自:https://blog.csdn.net/zhangpeterx/article/details/105099003

 有结合最新修改

为什么要静态编译(STATIC LINK)

在默认情况下,用QtCreator编译程序时,使用的是动态编译。编译好的程序在运行时需要另外加上相应的Qt库文件,一大堆dll文件。如果想将生成的程序连同所需要的库一起完整地打包成一个可执行程序,那就需要使用静态编译。Qt官方不提供静态编译好的安装包,所以需要我们在自己的电脑上静态编译。而且exe文件会比动态编译的要大上很多。

1.源码下载/SOURCE CODE DOWNLOAD

Qt最新版5.14.1的源码下载地址:

http://mirrors.ustc.edu.cn/qtproject/archive/qt/     中国科技大学

https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/   清华镜像

https://mirrors.cnnic.cn/qt/archive/qt/     中国互联网络信息中心

http://mirror.bit.edu.cn/qtproject/archive/qt/       北京理工大学

选择   安装版本  下的 single  目录

选择文件:qt-everywhere-src-×××××.zip

 

2. 编译工具下载/COMPILER DOWNLOAD

Qt官方文档要求编译工具:Qt for Windows – Requirements

打开源码目录下的README文件,查看当前版本Qt要求的Windows环境下编译需要安装的工具:

These tools are not needed to run Qt 5 applications, but they are required for building Qt 5 from source.

  • ActivePerl - Install a recent version of ActivePerl (download page) and add the installation location to your PATH.
  • Python - Install Python from the here and add the installation location to your PATH.
  • 注意5.15 没有要求安装 Ruby

编译环境选择:MINGW/MSVC

在Windows上,有两个预构建环境可供选择:一个是 MinGW ,另一个是Microsoft Visual Studio(MSVC)。这两个环境不兼容,无法混合。你必须选择一个。

这两者的区别如下:

当你的项目使用MinGW编译的使用,想要用一个MSVC编译生成的库时就会有问题。使用MinGW编译项目的时候,所使用的Lib也要是MinGW编译的。如果你只是开发Window平台的软件时,最好用Qt MSVC组合,这样可以使用大量的第三方lib,还有很多的构建指令,毕竟window上MSVC才是王道。

Windows建议选择MSVC,打开安装VS时自带安装的MSCV:x64 Native Tools Command Prompt for VS 2019

**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.4.5
** Copyright (c) 2019 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>
  • 默认编译的结果是64位的Qt

如果你想编译32位版本的qt,可以选择x86 Native Tools Command Prompt for VS 2019

警告:不要使用 Developer Command Prompt for VS 2019

如果你想在linux系统中进行Qt的编译工作,参考这个问答:c++ - How to compile Qt 5 under Windows or Linux, 32 or 64 bit, static or dynamic on Visual Studio or g++ - Stack Overflow

PERL

Perl 官网:Perl Download - www.perl.org

其中Windows版有2种可以下载,分别是ActivePerlStrawberry Perl。其中ActivePerl需要注册后下载,Strawberry Perl可以直接下载,推荐Strawberry Perl.

Strawberry Perl下载地址:Strawberry Perl for Windows

安装时默认会添加ActivePerl到环境变量。

PYTHON

下载Python:Python Releases for Windows

推荐下载最新版Python.org

如果需要安装后手动添加Python到环境变量。

RUBY  ???

Ruby下载地址:RubyInstaller for Windows

安装时默认会添加Ruby到环境变量。

 

3.编译

在D盘新建一个目录用来存放编译好的内容:D:\qt

x64 Native Tools Command Prompt for VS 2019的终端进入Qt源代码目录:

  • 建议将解压源文件后,将文件夹改短,
  • 注意父级目录都是英文,不能是中文

1.修改源码里的QTBASE\MKSPECS\COMMON\MSVC-DESKTOP.CONF文件

修改-MD为-MT

修改前:

QMAKE_CFLAGS_RELEASE    = $$QMAKE_CFLAGS_OPTIMIZE -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MD
QMAKE_CFLAGS_DEBUG      = -Zi -MDd

修改后:

QMAKE_CFLAGS_RELEASE    = $$QMAKE_CFLAGS_OPTIMIZE -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MT
QMAKE_CFLAGS_DEBUG      = -Zi -MTd

D的意思是动态编译(dynamic link),T的意思是静态编译(static link)。
这一步官方教程没有要求,但其他人的很多教程里都有写,我就加上了

2.配置CONFIG文件:

配置命令如下:

configure.bat -static -prefix "D:\qt" -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

具体含义如下:

configure.bat 
-static #指明是静态编译
-prefix "D:\qt" #指明安装的目录
-confirm-license -opensource  #指明是开源版本的qt
-debug-and-release #指明需要debug版和release版,可以单独选择release版
-platform win32-msvc  #指明使用msvc编译,这里的win32并不指32位
-nomake examples -nomake tests  #不编译样例
-plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg #可选插件
-opengl desktop  #用系统自带的opengl
-mp #多核编译
  •  

3.MAKE

上面提到过在Windows上,有两个预构建环境可供选择:一个是MinGW,另一个是Microsoft Visual Studio(MSVC)。

我选择的是msvc环境,使用命令nmake即可进行编译。

nmake
  • 新版的MSVC可以进行多线程编译,旧版本的MSVC自带的nmake没有多线程编译功能,有一个替代功能的软件jom可以进行nmake的多线程编译。

jmake完成后源码和编译后的共有26G

4.MAKE INSTALL

使用nmake单线程install:

nmake install

安装完成后,将安装带上面设置的目录   d:\Qt

4.添加到QT CREATOR

如果只安装Qt Creator,可以选择上述镜像的如下目录选择最新版本的 Qt Creator安装

Index of /qt/archive/qtcreator

也可以安装包含QT库以及qtcreator ,最新版本需要在线安装,安装文件在以下目录:

qtproject/official_releases/online_installers/ 

/qtproject/archive/online_installers/3.2/

不同镜像站点可能有不同 

这里需要说明一下,Qt Creator现在已经不能直接下载最新版本,需要在线安装:Index of /archive/online_installers/3.2

下载后安装最新版的Qt Creator4.9

添加QT VERSIONS

 

新建构建套件

新建构建套件,Qt版本选择刚添加的静态版,记得编译器选自己编译时用的编译器。

å¨è¿éæå¥å¾çæè¿°

 

注意编译器版本选择和编译时相同的编译器

新建项目

新建项目,成功运行:

å¨è¿éæå¥å¾çæè¿°

 

一个exe的大小是13M,包括了所有需要的内容。

5.小结

Qt 5.14.1 的静态编译的过程还算顺利,需要注意的是编译前要仔细阅读官方文档,毕竟很多教程不是最新的,但官方文档一般都是最新的。

你可能感兴趣的:(Qt)