Qt 5.15.2 MSVC2019 32 位静态编译
获取源码
清华镜像:
https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.zip
编译工具下载/COMPILER DOWNLOAD
打开源码目录下的 README 文件,查看当前版本 Qt 要求的 Windows 环境下编译需要安装的工具:
1 | Windows: |
编译环境选择:MINGW/MSVC
在 Windows 上,有两个预构建环境可供选择:一个是 MinGW,另一个是 Microsoft Visual Studio (MSVC)。这两个环境不兼容,无法混合。你必须选择一个。
这两者的区别如下:
当你的项目使用 MinGW 编译的使用,想要用一个 MSVC 编译生成的库时就会有问题。使用 MinGW 编译项目的时候,所使用的 Lib 也要是 MinGW 编译的。如果你只是开发 Window 平台的软件时,最好用 Qt MSVC 组合,这样可以使用大量的第三方 lib,还有很多的构建指令,毕竟 window 上 MSVC 才是王道。
我选择 MSVC,打开安装 VS 时自带安装的 MSCV:x64 Native Tools Command Prompt for VS 2019
1 | ********************************************************************** |
默认编译的结果是 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
编译
在 D 盘新建一个目录用来存放编译好的内容:D:\qt
在 x64 Native Tools Command Prompt for VS 2019 的终端进入 Qt 源代码目录:
1 | C:\Users\peter\Downloads>cd qt-everywhere-src-5.14.1 |
修改源码里的 QTBASE\MKSPECS\COMMON\MSVC-DESKTOP.CONF 文件
修改 -MD 为 -MT
修改前:
1 | QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MD |
修改后:
1 | QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MT |
D 的意思是动态编译 (dynamic link),T 的意思是静态编译(static link)。
配置 CONFIG 文件:
配置命令如下:
1 | configure.bat -prefix D:\QT\qt\5.15.2\msvc2019_32_static -confirm-license -opensource -debug-and-release -static -static-runtime -no-feature-d3d12 -platform win32-msvc -mp -nomake tests -nomake examples -nomake tools -gui -widgets -plugin-sql-sqlite |
具体含义如下:
1 | configure.bat |
MAKE
上面提到过在 Windows 上,有两个预构建环境可供选择:一个是 MinGW,另一个是 Microsoft Visual Studio (MSVC)。
我选择的是 msvc 环境,使用命令 nmake 即可进行编译。
1 | nmake |
新版的 MSVC 可以进行多线程编译,旧版本的 MSVC 自带的 nmake 没有多线程编译功能,有一个替代功能的软件 jom 可以进行 nmake 的多线程编译。
jom 的下载地址:Jom - Qt Wiki
在刚才的终端中运行命令:
1 | D:/jom_1_1_3/jom.exe |
MAKE INSTALL
使用 nmake 单线程 install:
1 | nmake install |
添加到 QT CREATOR
添加 QT VERSIONS
注:若新增 qmake.exe 前出现黄色感叹号,可复制其它版本 bin 目录下的 qmlscene.exe 到该静态编译版本的 bin 目录下即可。
新建构建套件
新建构建套件,Qt 版本选择刚添加的静态版,记得编译器选自己编译时用的编译器。
Qt5.15.2 msvc 静态编译记录_-platform win32-msvc_themql 的博客-CSDN 博客
许可协议
本文由 Ming 原创,采用 CC BY-NC-SA 4.0 协议。转载请注明出处。
PERMALINK
https://iming.eu.org/2024/04/13/qt-static-compile/