MinGW编译Qt6 源码(v 6.4.1)
准备
工具
源码(v 6.4.1)
编译
注意事项
- 必须先编译
base
部分, tools
视情况自行决定是否编译, 如: designer
, qmake
pip install pyside
- 对于存在开关的选项, 有需要的打开, 不清楚的不要随便关闭
- 对于出现的"Could Not find XXX", 只要能通过配置(
Configure
)就不要自己手动下载编译
Steps
- 解压base源码(例如: D:\Build\Qt\qtbase-6.4.1)
- 使用CMake生成Makefile文件
- 源码所在路径, “Where is the source code”: D:/Build/Qt/qtbase-6.4.1
- 编译文件生成路径, “Where to build the binaries”: D:/Build/Qt/qtbase-6.4.1/build_GCC
- 点击
Configure
, 选择 MinGW Makefiles
- 直至出现Configuring done, 继续下一步
- 选择
CMAKE_BUILD_TYPE
类型 - 配置
CMAKE_INSTALL_PREFIX
, 选择你要安装的路径(推荐修改)
- 依据个人情况对开关进行打开或关闭
- 点击
Generate
, 直至出现Generating done, 即Makefile
文件生成
- 使用make(mingw32-make.exe)运行makefiles
- j8表示多用几个线程加快编译速度, 数字随便指定, 别太离谱, 不用也可以
- 如果出现中途报错, 请留言, 或者
Delete Cache
后重新配置来一遍玄学 - 如果选择了test模块(QT_BUILD_TESTS)可以先
make test
之后再make install
, 安装结束 make install
之后说权限不够, 使用管理员打开你的powershell
或CMD
等这类工具
cd D:\Build\Qt\qtbase-6.4.1\build_GCC
make -j8
make test
make install
最后
- Qt呢是一定可以用MinGW编译通过的(2023-01-28). 因为Qt Creator下的MaintenanceTool.exe工具(类似VS Installer)直接提供供MinGW使用的 base, tools等库
- Qt官方使用Ninja进行编译管理, 而非
make
- 并不是所有库或者其所有版本都支持MinGW, 可以说大多数不支持
MinGW谁啊,真不熟 , 只是刚好与MSVC不冲突, 能用.
- 比如VTK 9.1.0(不包含)版本之后包含了个windows的宏, 结果就不行了
- 有些库MYSY2环境也有提供, 不过本人没用过该环境
- 若不想安装
MYSY2
但还想使用其提供的库, 可以去他们的地址(清华镜像)找找 - 关于许多大型库, 如VTK, OpenCV, OSG等都有提供, 但直接使用会报错, 可能这些库还依赖其他库, 或者他们的FindXXX.cmake问题…
- 关于如何优雅的使用CMake, 可以考虑添加一个环境变量
CMAKE_PREFIX_PATH
, 并将库的根目录添加进去 - 关于文章开始提到的工具,可以看这篇
- Windows上老老实实使用VS(MSVC编译组件), 真稀罕GCC就上个Linux