先附上一个参考链接:https://blog.youkuaiyun.com/spotian/article/details/77413064
1.获取Qt5.12.3源代码,解压。(如E:\)
2.建议查看源代码文件夹中的README,告知了编译之前的需要具备的必要条件。通过命令行 ./configure -h 也可以获取到不少必要的信息。 事先对此有一定的了解,可以在遇到问题的时候,更好地分析解决。
3.README中告知了,需要具备以下编译环境:
Ensure that the following tools can be found in the path:
* Supported compiler (Visual Studio 2012 or later,
MinGW-builds gcc 4.9 or later)
* Perl version 5.12 or later [http://www.activestate.com/activeperl/]
* Python version 2.7 or later [http://www.activestate.com/activepython/]
* Ruby version 1.9.3 or later [http://rubyinstaller.org/]
点击对应的链接,安装即可。
对于编译器而言,上面的文字描述,应该是支持MSVC和MINGW,由于本机已经存在VS2013,故,一开始使用MSVC编译,./configure ... 时遇到一个问题:
qgenericatomic.h(274) : error C3646: “noexcept”: 未知重写说明符
贴吧中看到对于这个问题的说法是:“noexcept是现代C++的特性,需要VS2015以上的版本才能支持编译。”
也可能是我这边哪一步没走对,看到这个说法之后,没多深究,换MinGW了。MinGW离线包链接:
4.备好环境之后,设置相关的路径和环境变量,详细可参考开篇的参考链接。以下以我的实际环境为例:
源码解压至E:\qt-everywhere-src-5.12.3 ,
添加环境变量_QTDIT=E:\qt-everywhere-src-5.12.3
并在Path中添加路径:
PATH
%_QTDIR%\
%_QTDIR%\qtbase\bin
%_QTDIR%\gnuwin32\bin
另外,添加MinGW离线包bin文件夹的路径。(若Python, Perl, Ruby的相关路径不存在,也一样添加进来)
5.打开命令行终端,切换至qt源代码目录,
./configure -static -debug-and-release -opensource -confirm-license -platform win32-g++ -sql-sqlite -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype --compile-examples=no -nomake tests -nomake examples -skip qt3d -no-opengl -prefix D:/soft/Qt-5.12.3-static
可以用过./configure -h 获取相关参数的说明,并根据自己的需要进行调整。
6.mingw32-make -j 4
进行编译,根据机器的情况,分配jobs数量。
7.mingw32-make install
8.完成之后,在QtCreator中,工具 - 构建和运行 - Qt Version - 添加, 找到编译好的qmake的路径,然后Apply。
然后切到旁边的“构建套件(Kit)” - 添加, 选编译器,对应的Qt版本即可。