2024年记一次Mingw64-13.2.0编译Qt6.6.3,包含文档编译。

news2024/11/24 3:59:48

My C++ Development.

前言:不包含qtwebengine

一、准备文件

(1)mingw64-13.2.0

下载链接:,ucrt64_13.2_ucrt_posix_rev6_msys2.7z【蓝奏云】。

在这里插入图片描述

(2)qt6.6.3源码

下载链接:Download QT 6.6.3,我这里下载的是:qt-everywhere-src-6.6.3.zip

(3)LLVM 18.1.5,编译文档用。

不编译文档,跳过该文章相关部分就行。

下载链接:LLVM 18.1.5,我这里下载的是:llvmorg-18.1.5.zip

(4)Python

如果你已有Python,貌似只要是Python3就行,但是请确保路径无空格和中文

下载链接:python-3.11.9-amd64.exe,安装时请避免使用带空格和中文的路径。

或者你的系统有scoop包管理,可以使用:

scoop install python

(5)Ninja 和 CMake

下载链接:ninja-win.zip,将解压后的exe目录添加到PATH环境变量。

或者你的系统有scoop包管理,可以使用:

scoop install ninja cmake

二、开始编译

2.1 检查环境

打开一个cmd窗口,请确保在这个窗口中可以执行,pythonninjag++cmake指令。

2.2 编译 LLVM(llvm和clang模块就行)

先编译llvm再编译clang

新建两个文件夹(叫什么和在哪里都随便,别含中文路径和空格路径),然后打开cmake-gui,用命令行也可以,但是用gui方便查看库的一些定义啥的,也方便修改这些定义。

在这里插入图片描述
上下两行这样填写,第一行是源码目录,第二行是生成的工程位置,就是上面我们自己创建的:

在这里插入图片描述
然后点击界面左下侧的Configure按钮,首次可能会报错,说没有填写CMAKE_BUILD_TYPE,手动填上Release,然后在CMAKE_INSTALL_PREFIX一栏填写稍后编译完成后的安装目录,推荐自己创建一个,我这里是:

在这里插入图片描述
填写好以后,点击Generate按钮,应该就可以成功生成工程项目了。打开一个cmd窗口,进入到你的工程中。

在这里插入图片描述
后面的-j8不推荐填太大,我当时直接使用cmake --build . --parallel,直接32G内存干爆了。

编译完成后使用mingw32-make.exe install安装到上面配置的安装目录中。

然后编译clang,方法与上面一样,配置CMAKE_BUILD_TYPEReleaseCMAKE_INSTALL_PREFIX一栏填写稍后编译完成后的安装目录,我填写的是:D:\llvm-18.1.5\clang-build,其实两个工程的安装目录填一样(我第一次搞怕不行,分开两个)就行

llvm稍有不同的是,除了配置上面两个变量还需要填写一个LLVM_BINARY_DIR,就是你上面安装的llvm目录,我这里是:D:\llvm-18.1.5\llvm-build

在这里插入图片描述
然后这里添加一个BOOL类型的EntryName填:LLVM_INCLUDE_TESTS,不勾选,确定,然后Generate就行。与上面llvm一样,
打开一个cmd窗口,进入到clang的工程目录,我这里是:D:\llvm-18.1.5\llvm-project-llvmorg-18.1.5\mybuildclang,然后执行,mingw32-make.exe -j8,完成后mingw32-make.exe install。最后将两个安装目录的内容拷贝到一起,并将目录改为libclang,如下图:

在这里插入图片描述

2.3 编译 qt6

解压源码,cmd进入到源码中:

在这里插入图片描述
配置,下面是cmd配置,我截图用的powershell(记录该文章才截的图,懒得换图了),powershell用的是$env的形式,用powershell的自己研究吧。

set PATH=%PATH%;D:\mingw-qt6\libclang\bin
set LLVM_INSTALL_DIR=D:\mingw-qt6\libclang

然后执行:

configure.bat -platform win32-g++ -debug-and-release -confirm-license -opensource -prefix D:\mingw-qt6\qt6-build -skip qtwebengine -nomake tests

其中D:\mingw-qt6\qt6-build是最后编译完成后的安装目录。

执行:

cmake --build . --parallel

构建完成后安装:

ninja install

构建文档,貌似会遇到复制报错的Error,手动把报错目标位置的目录删除再重新执行就行了:

ninja docs

在这里插入图片描述

ninja docs命令执行完成后,生成的文档在源码的doc目录下:

在这里插入图片描述
最后将doc文件夹复制到安装目录下,一个完整的不含qtwebengine模块(貌似mingw64不支持?)的qt6就完成了。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1660807.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电子版图书制作,一键转换可仿真翻页的画册

在数字化浪潮的冲击下,传统纸质图书逐渐被电子版图书取而代之。电子版图书以其便携、环保、更新快速等特点,吸引了越来越多的读者。制作一款既具备电子图书的便捷性,又能仿真翻页的画册,成为当下图书出版行业的新趋势 1.要制作电子…

微信小程序支付(完整版)-ThinkPHP/Uniapp

技术说明 1.前端:uniapp、vue3 2.接口:PHP8、ThinkPHP8、MySQL8.0 3.微信支付- PHP,官方示例文档 4.示例代码的模型及业务自己进行调整,不要一味的复制粘贴!!! 流程说明 1.小程序调用接口…

资源管理游戏模版进入The Sandbox

我们非常高兴地向您介绍 Game Maker 的最新模板:资源管理游戏! 这一全新的模板让您能够深入身临其境的游戏体验中,同时掌握令人兴奋的新机制。通过揭开模板的神秘面纱,您可以锤炼您的游戏设计技能。 什么是资源管理游戏&#xff1…

winpcap无法安装提示新版本已经安装-window11解决办法

winpcap无法安装提示新版本已经安装-window11解决办法 问题解决办法 问题 安装ensp的时候跳出来这个问题,说自己的winpcap没安装,建议安装 但当自己去安装一个winpcap的时候,它又跳出来这个! WinPcap 4.1.3 Setup A newer versi…

电脑设置在哪里打开?Window与Mac双系统操作指南

随着科技的不断发展,电脑已经成为我们日常生活和工作中不可或缺的一部分。然而,对于许多初学者来说,如何找到并熟悉电脑的设置界面可能是一个挑战。特别是对于那些同时使用Windows和Mac双系统的用户来说,更是需要一篇详尽的指南来…

android进阶-AIDL

参考:Android进阶——AIDL详解_android aidl-CSDN博客 AIDL(Android 接口定义语言),可以使用它定义客户端与服务端进程间通信(IPC)的编程接口,在 Android 中,进程之间无法共享内存&…

latex algorithm2e 库学习总结

案例1 \documentclass{article}\usepackage{xeCJK} \usepackage[]{algorithm2e} %\usepackage{ctex} % 中文包\begin{document}\renewcommand{\algorithmcfname}{算法} % 把标题设置为“算法” \begin{algorithm…

数据库管理-第184期 23ai:干掉MongoDB的不一定是另一个JSON数据库(20240507)

数据库管理184期 2024-05-07 数据库管理-第184期 23ai:干掉MongoDB的不一定是另一个JSON数据库(20240507)1 JSON需求2 关系型表设计3 JSON关系型二元性视图3 查询视图总结 数据库管理-第184期 23ai:干掉MongoDB的不一定是另一个JSON数据库(20…

雪花算法生成全局Id,看这篇就够了

分布式id 雪花算法能够生成一个64位long类型数据,适合做分布式系统的全局标识符,或者分库分表中,同类型数据表的主键 原理探究 雪花算法:以一台服务器为对象,在一毫秒时间内,生成一个自增的long数据特点…

Ps 滤镜:视频

Ps菜单:滤镜/视频 Filter/Video “视频”滤镜子菜单中包含了“NTSC 颜色”和“逐行”两个滤镜。 这两个滤镜都是针对视频和电视播放的特定需求设计的。 “逐行”滤镜主要解决交错视频的视觉问题,而“NTSC 颜色”滤镜则确保色彩在电视播放时的兼容性和准确…

springboot+vue+mysql老年大学会员管理系统+PPT+论文+讲解+售后

现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本老粘大学会员管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&a…

HTML4(二)

文章目录 1 开发者文档2 基本标签2.1 排版标签2.2 语义化标签2.3 行内元素与块级元素2.4 文本标签2.5 常用标签补充 3 图片标签4 超链接标签4.1 跳转页面4.2 跳转文件4.3 跳转锚点4.4 唤起指定应用 5 列表5.1 有序列表5.2 无序列表5.3 自定义列表 6 表格6.1 基本结构6.2 表格标…

如何查看页面对应的Selenium定位参数

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

IO 5.10

在一个进程中,创建一个子线程。 主线程负责:向文件中写入数据 子线程负责:从文件中读取数据 要求使用线程的同步逻辑,保证一定在主线程向文件中写入数据成功之后,子线程才开始运行,去读取文件中的数据#incl…

bean在java中什么意思?这篇文章带你详细了解

bean在java中什么意思?这篇文章带你详细了解 在Java的世界里,你可能会经常听到“Bean”这个词。它听起来像咖啡豆,但实际上与咖啡无关。那么,Java Bean到底是什么呢? 简单来说,Bean是一种特殊的Java类&…

麒麟kylin-v10系统,虚拟机kvm的使用

kvm的使用 虚拟机新建 点击选择对应的iso文件 选择相应的系统 (注意,如果这里没有相应的系统比如:windows,可以直接选择Generic default这是通用默认的意思) 选择cpu 完成即可 等待安装完毕 网络设置-ssh连接 虚拟…

2024.5.10

数据库删除操作 //删除操作的槽 void Widget::on_delbt_clicked() {QString sql;if(ui->idedit->text()NULL){sql "drop Stu";}else{sql QString("delete from Stu where id %1").arg(ui->idedit->text());}QSqlQuery query;if(!query.exe…

看懂这4点,保证让你顺利申请小程序地理位置接口

小程序地理位置接口有什么功能? 通常情况下,我们在开发小程序时,可能会用到获取用户地理位置信息的功能。小程序开发者开放平台的新规定指出,如果没有申请开通微信小程序地理位置接口(getLocation)&#xf…

OSPF虚链路

原理概述 通常情况下,一个OSPF网络的每个非骨干区域都必须与骨干区域通过ABR路由器直接连接,非骨干区域之间的通信都需要通过骨干区域进行中转。但在现实中,可能会因为各种条件限制,导致非骨干区域和骨干区域无法直接连接&#x…

Mysql的关联查询以及语句

一、mysql的连接查询 1、等值连接 这里是三张表的等值连接 select rp.role_id,rp.permission_id from role_permission rp, role r, permission p where rp.role_idr.id and rp.permission_idp.id 2、内连接: 角色:系统管理员 是否拥有权限&#xf…