windows下编译qt6

windows下编译qt6

前言

最近研究一款开源软件,软件依赖qt6。 由于最新的qt只能从源码编译二进制文件,故记录下相关步骤。

qt6源码(6.3.2下载地址(可以使用更新的))中有一个README.md文件,里面较为详细的描述windows下编译的整个过程,本文再此基础上进行了一些补充。

环境

  • CMake 3.18 or later
  • Perl 5.8 or later
  • Python 2.7 or later
  • C++ compiler supporting the C++17 standard
  • ninja 1.8 or later

这里特别说明, 官方推荐的perl解释器是activeperl,但是这个需要注册账号,并且填写很多信息才能下载到安装程序, 这里选择strawberry-perl,可方便地下载到安装程序, 不影响Qt库本身的使用。

windows 下支持的msvc编译器最低版本是msvc 16.0(也就是安装Visual Studio 2019后自带的编译器)

minGW官方推荐的版本是gcc 8.1 or later, 试过7.3.0可以编译通过,11.1.0不能编译通过,原因未来有机会研究研究再补充。

ninja 是一款替代linux下make命令的编译构建工具。小巧,快速,具体不多介绍。

qt6 之后的版本, 官方使用cmake作为构建工具,之前一直是qt自家的qmake。 cmake是一款跨平台可用于交叉编译的c++源码编译构建工具。 目前正在被许多大型开源项目采用。且qt-creator集成开发环境也很好地支持cmake构建项目。感兴趣的同学,可以关注此博客,后面会推出cmake教程。

编译

msvc 16(Visual Studio 2019)

(1)在vs 2019安装目录中(默认位置C:\Program Files (x86)\Microsoft Visual Studio 16.0\VC\Auxiliary\Build)打开双击打开vcvars64.bat

(2)执行命令添加上述编译环境中的各个工具的bin目录到环境变量path中, 例如:

set path=G:\dev\strawberry-perl\perl\bin;%path%

​ 然后执行一下命令检查各个命令是否能被找到:

where perl.exe
where python.exe
where cmake.exe
where ninja.exe

(3)逐一执行以下各条命令

cd <qt6 source_dir>
mkdir build
cd build
..\configure.bat -prefix G:\dev\qt6\msvc2019_64 -debug-and-release -platform win32-msvc -qt-zlib -qt-libpng -qt-libjpeg -no-sql-psql -no-sql-mysql -no-glib -no-avx2 -opensource -confirm-license -skip qtwebengine -skip qtmultimedia -skip qtlocation -nomake examples -nomake tests
cmake --build . --parallel
cmake --install . --config Debug
cmake --install . --config Release

注意:

  1. platform参数值可以到\qtbase\mkspecs去找到这个编译器平台的值。更多可以参考qt官方文章
  2. 需要编译更多模块,可以删除skip参数, 反之需要取消编译更多模块,增加skip参数。
  3. prefix是设置安装路径, 根据实际更改。
  4. 更多参数描述执行…\configure.bat -h查看帮助。

如果遇到问题, 请友善留言。

后面有时间会继续更新:

  1. 如何在windows下编译最新的qt-creator
  2. 如何在windows下编译qt5.15
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值