概述:

Qt是一个牛B的平台,不管是开发Windows平台、Linux平台,还是Mac平台的本地应用都很方便,后面还扩展到Android,近一两年又出了MCU(笔者也没用过),真的是越来越丰富了。

这个平台最牛B的功能,当属信号和槽(singnals/slots),使对象间的交互非常方便;不像微软自家的Windows SDK,多少年一直是那个样子,没有什么进展,什么声明窗口类、注册窗口类。。。等等,很复杂,让人看着就头疼。虽然有.NET平台,但作为纯技术流,在很多情况下还是需要本地代码开发:简单!高效!

笔者从12年开始接触以来,断断续续一直在关注,也算见证了它的一步步发展。从最初的Trolltech,到Nokia,在到Digia,东家一再变更,但不变的是开发者对它的热情。很多大公司的知名产品都基于QT开发。

我想QT发展最成功的原因还是它的一个开放的态度,但近几年不知怎么回事,微软都拥抱开源、拥抱Linux了,QT的东家却感觉有点作死。从QT5.15开始,不再提供二进制版本,官方只对商业许可用户提供二进制下载,需要开发者自己编译。

笔者也尝试编译了下,还是会遇到很多坑,这里记录一下,和大家分享一些经验。

 

编译平台:

Win7   FAIL

Win10  OK

Ubuntu20.02  OK

 

源码下载:

方法一:直接从qt的git仓库下载,慢
源码地址:https://code.qt.io/cgit/qt/qt5.git/refs/
方法二:https://www.qt.io/offline-installers 下载包含所有module的源代码包

 

需要工具(2021.9最新):

Perl 5.32

Python 3.9

CMake

Ninja

Mingw64

 

将以上工具的二进制(bin目录)加入到环境变量

set BASE=C:\qt

set CMAKE=%BASE%\tools\cmake
set NINJA=%BASE%\tools\ninja-win
set MINGW64=%BASE%\tools\mingw64

set PERL=%LOCALAPPDATA%\activestate\ed778b86
set PYTHON=%LOCALAPPDATA%\Programs\Python\Python39

set PATH=%PATH%;%CMAKE%\bin;%NINJA%;%PERL%\bin;%PYTHON%;%MINGW64%\bin
set QT6-BUILD=%BASE%\src\6.1.3\qt-build

 

编译:

rmdir /S /Q %QT6-BUILD%
mkdir %QT6-BUILD%
cd %QT6-BUILD%
..\configure.bat -release -no-pch -prefix %QT6-BUILD% -skip qtwebengine -skip qtwebview -skip qtdoc -make tools -nomake tests -nomake examples

cmake --build . --parallel

cmake --install .

 

生成物(10个文件夹):

bin,doc,include,lib,mkspecs,modules,phrasebooks,plugins,qml,translations

 

下一篇抽空出“通过源代码编译Qt Creator”

 

参考:
Official: Qt for Windows https://doc.qt.io/qt-6/windows.html
Official: Qt for Windows - Building from Source: https://doc.qt.io/qt-6/windows-building.html
https://code.qt.io/cgit/qt/qt5.git/refs/
https://decovar.dev/blog/2020/12/04/qt-without-installer/
http://www.saoe.net/blog/building-qt-6-1-0-on-windows-10-with-visual-studio-2019/
Linux:https://www.linuxfromscratch.org/blfs/view/svn/x/qt5.html
http://wiki.digitser.cn/en-US/qt/compile5.15.html
At last, let's build Qt statically | Declaration of VAR (retifrav.github.io)https://retifrav.github.io/blog/2018/02/17/build-qt-statically/
https://doc.qt.io/qt-5/build-sources.html
https://wiki.qt.io/Building_Qt_5_from_Git
https://doc.qt.io/qt-5/qdoc-guide-clang.html

Qt Creator:
https://download.qt.io/development_releases/prebuilt/libclang/
https://github.com/qt-creator/qt-creator/blob/master/README.md
https://wiki.qt.io/Building_Qt_Creator_from_Git
https://wiki.qt.io/MinGW-64-bit
https://wiki.qt.io/Building_Qt_Creator_from_Git#mw-head