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

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就完成了。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

纯血鸿蒙APP实战开发——一镜到底“页面转场”动画

介绍 本方案做的是页面点击卡片跳转到详情预览的转场动画效果 效果图预览 使用说明 点击首页卡片跳转到详情页,再点击进入路由页面按钮,进入新的路由页面 实现思路 首页使用了一种视觉上看起来像是组件的转场动画,这种转场动画通常是通过…

opencv绘制灰度直方图-------c++

灰度直方图 cv::Mat opencvTool::calculateHistogram(const cv::Mat& image) {// 如果输入图像尚未处于灰度级,请将其转换为灰度级cv::Mat grayscale_image;if (image.channels() > 1){cv::cvtColor(image, grayscale_image, cv::COLOR_BGR2GRAY);}else{gra…

求一个B站屏蔽竖屏视频的脚本

求一个B站屏蔽竖屏视频的脚本 现在B站竖屏竖屏越来越多了,手机还好点给我一个按钮,选择不喜欢,但是我一般都用网页版看视屏,网页版不给我选择不喜欢的按钮,目测大概1/4到1/3的视频都是竖屏视频。 目前网页版唯一的进…

使用AudioCraft(MusicGen)生成音乐

AudioCraft 是一个 PyTorch 库,用于音频生成的深度学习研究。AudioCraft 包含 AudioGen 和 MusicGen 两个最先进的人工智能生成模型的推理和训练代码,用于生成高质量的音频。 MusicGen 是一种简单可控的音乐生成模型,它使用Meta 20K 小时的授权音乐来进行训练,能够生成与文…

SM4在线解密工具(支持GCM模式)

SM4在线解密工具(支持GCM模式)

spring boot参数验证注解@NotNull、@NotBlank和@NotEmpty区别

目录 前言说明举例 前言 使用spring boot参数验证是常常会使用NotNull、NotBlank和NotEmpty三个判断是否不为空的注解,中文都有不能为空的意思,大部分使用者都傻傻分清它们之间到底有什么区别。今天就让咱们来一起探索它们之间的不同吧。 说明 注解名…

rngd: Error writing /dev/tpm0

检查数据库时发现messages中一直有rngd报错,rngd一直未配置,直接关闭了 /var/log/messages-20240414:Apr 11 04:59:49 hydb2 rngd: Error writing /dev/tpm0 /var/log/messages-20240414:Apr 12 07:31:39 hydb2 rngd: Error writing /dev/tpm0 /var/log…

深度学习之前馈神经网络

1.导入常用工具包 #在终端中输入以下命令就可以安装工具包 pip install numpy pip install pandas Pip install matplotlib注: numpy是科学计算基础包 pandas能方便处理结构化数据和函数 matplotlib主要用于绘制图表。 #导包的代码: import numpy as n…

怎样的跨网软件,可以实现网间数据的安全收发?

网络隔离已是较为常见的网络安全保护措施,比如防火墙、网闸、VLAN,云桌面虚拟环境等方面进行隔离。像一些科技研发型企业,不仅仅是内外网隔离,甚至还划分办公网、研发网、测试网、生产网等,防止研发资料、设计资料等敏…

【机器学习300问】85、Adam梯度下降优化算法的原理是什么?

Adam优化算法取了两个算法名称的首字母——Adaptive Moment Estimation的缩写,结合了Momentum算法和RMSprop算法的优点。在Momentum中,会计算前一时刻的梯度,并将其用于当前时刻的梯度更新;而RMSprop会对梯度的大小进行自适应调整…

二叉树的遍历(前序 中序 后序)

一、前序遍历 顺序为: 根-->左子树---->右子树 先访问根节点,再递归进入根节点的左子树(通过递归不断往下遍历),直到访问的节点没有左子树,此时递归进入其右子树(通过递归进行相同操作&a…

vue布局设置——使用 el-drawer 打造个性化 Admin 后台布局设置

在前端开发中,我们常常需要为 admin 后台构建灵活且个性化的布局设置。今天,我要分享的是如何利用 el-drawer 来实现这样一个有趣的功能。 首先,我们来看一下主要的设置参数: 1. theme: 用于定义主题,可以根据需求切换…

Java入门基础学习笔记15——强制类型转换

大范围类型的变量是否可以赋值给小范围类型的变量呢? IDEA直接报错。直接报错,是提醒你有问题。但是我非常进行类型转换。 非要强行赋值呢? 强制类型转换,强行将类型范围大的变量,数据赋值给类型范围小的变量。 数据…

若依生成树表和下拉框选择树表结构(在其他页面使用该下拉框输入)

1.数据库表设计 生成树结构的主要列是id列和parent_id列,后者指向他的父级 2.来到前端代码生成器页面 导入你刚刚写出该格式的数据库表 3.点击编辑,来到字段 祖籍列表是为了好找到直接父类,不属于代码生成器方法,需要后台编…

数据挖掘(二)数据预处理

前言 基于国防科技大学 丁兆云老师的《数据挖掘》 数据挖掘 数据挖掘(一)数据类型与统计 2、数据预处理 2.1数据清理 缺失值处理: from sklearn.impute import SimpleImputer# 创建一个SimpleImputer对象,指定缺失值的处理策略…

day07beef-xss之根据beef-xss获取cookies

1.安装 apt-get update apt-get install beef-xss 若报错运行不了尝试 apt remove ruby apt remove beef-xss apt-get install ruby apt-get install ruby-dev libpcap-dev gem install eventmachine apt-get install beef-xss 2.运行 beef-xss 运行成功会自动弹出浏览框。 攻…

WM Transaction Code 仓库管理模块事务代码大全

1.1 LE-WM 仓库管理 Warehouse Management 仓库管理事务码 描述 LB01 Create Transfer Requirement 创建转储需求 LB02 Change transfer requirement 修改转储需求 LB03 Display Transfer Requirement 显示转储需求 LB10 TRs for Storage Type 按仓储类型的转储请求 …

一次完整的GC流程

Java堆中内存区分 Java的堆由新生代(Young Generation)和老年代(Old Generation)组成。新生代存放新分配的对象,老年代存放长期存在的对象。 新生代(Young)由年轻区(Eden&a…

uniapp开发微信小程序,选择地理位置uni.chooseLocation

<view click"toCommunity">点击选择位置</view>toCommunity() {const that thisuni.getSetting({success: (res) > {const status res.authSetting// 如果当前设置是&#xff1a;不允许&#xff0c;则需要弹框提醒客户&#xff0c;需要前往设置页面…

linux开发笔记(buildroot 增加自己的开发板支持文件)

1、该笔记参考了mangopi r3的buildroot。某宝上卖的LC-PI-200S提供的buildroot就是这个。已经上传到我的资源中&#xff0c;可以下载看看。 2、首先在buildroot目录输入make menuconfig打开buildroot配置。 进入build options查看 可以看到第二行就是buildroot配置的保存位置…