MacBook Pro(M1芯片)Qt环境配置

MacBook Pro(M1芯片)Qt环境配置

1、准备

试图写一个跨平台的桌面应用,此时想到了使用Qt,于是开始了搭建开发环境~

在M1芯片的电脑上安装,使用brew工具比较方便
Apple Silicon(ARM/M1)安装于/opt/homebrew
有时可能下载会比较缓慢以及容易中断,建议更换国内的镜像源进行替换

Homebrew官网(https://brew.sh/zh-cn/)
Homebrew安装教程(https://blog.csdn.net/u013954557/article/details/144719382)

2、开始安装

安装qt的过程比较简单,直接使用brewinstall命令就可以了

brew install qt

查看安装路径和架构,确认安装的架构是正确的,M1对应的是arm64

which qmake   # 查看路径 m1 为 /opt/homebrew/bin/qmake
file /opt/homebrew/bin/qmake   # arm64

接下来 ,查看brew安装的 qt 的版本

brew info qt

在这里插入图片描述

可以看到,目前的版本是6.7.3,接下来需要安装与之匹配的 qt creator

brew install --cask qt-creator

或者,也可以直接到国内的镜像网站直接下载对应的版本

清华大学镜像(https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/qtcreator/15.0/15.0.1/qt-creator-opensource-mac-x86_64-15.0.1.dmg

完成后,应该可以找到 qt creator,打开后进行项目配置

3、配置Qt

找到首选项,依次设置 qt 的路径以及 arm64 的应用编译环境
在这里插入图片描述

使用brew安装的qmake位置通常就是下面这个
在这里插入图片描述

绑定 C/C++环境(这里我直接使用XCode自带的)以及Qt(上面刚配的)
在这里插入图片描述

没有报错,基本上就可以了,可以新建一个项目试一下,使用Qt Widgets Application模板

4、项目创建

在这里插入图片描述

设置项目目录以及项目名称
在这里插入图片描述

构建工具选用的是CMake
在这里插入图片描述

生成文件使用默认的
在这里插入图片描述

国际化暂时用不上
在这里插入图片描述

桌面应用使用的套件是基于arm64
在这里插入图片描述

以下将会是添加到项目中的文件
在这里插入图片描述

此时,项目创建完成,以下便是项目目录
在这里插入图片描述

直接找到左下角的“运行”按钮,点击
在这里插入图片描述

一个空的窗口就运行成功了
在这里插入图片描述

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

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

相关文章

Sqlserver DBCC Check 遇到Msg 3853报错涉及sys.columns和sys.objects信息不匹配的解决方法

对数据库CacheDBMSIntl执行DBCC checkcatalog(‘CacheDBMSIntl’)时遇到报错如下 Msg 3853, Level 16, State 1, Line 7 Attribute (object_id1071830442) of row (object_id1071830442,column_id1) in sys.columns does not have a matching row (object_id1071830442) in sy…

VUE之组件通信(二)

1、v-model v-model的底层原理:是:value值和input事件的结合 $event到底是啥?啥时候能.target 对于原生事件,$event就是事件对象 ,能.target对应自定义事件,$event就是触发事件时,所传递的数据&#xff…

P2036 [COCI 2008/2009 #2] PERKET(dfs)

#include<bits/stdc.h> using namespace std;int n; int a[15],b[15]; int ansINT_MAX; // 初始化最小差值为一个很大的数&#xff0c;保证能找到最小值void dfs(int i,int s,int k){if(in){ // 当遍历完所有元素时if(s1&&k0) return;int difabs(s-k);ans mi…

论文解读:《基于TinyML毫米波雷达的座舱检测、定位与分类》

摘要 本文提出了一种实时的座舱检测、定位和分类解决方案&#xff0c;采用毫米波&#xff08;mmWave&#xff09;雷达系统芯片&#xff08;SoC&#xff09;&#xff0c;CapterahCAL60S344-AE&#xff0c;支持微型机器学习&#xff08;TinyML&#xff09;。提出了波束距离-多普勒…

ORB-SLAM2源码学习:KeyFrame.cc④: void KeyFrame::UpdateBestCovisibles更新最佳共视

前言 在添加新连接之后就要重新对所有的共视关键帧和权重的那两个列表重新进行降序排列&#xff0c;这样非常容易知道列表的第一位就是最佳共视关键帧和权重。 总的来说就是只要权重发生了变化就要调用这个函数来修改mvpOrderedConnectedKeyFrames共视关键帧和mvOrderedWeigh…

尚硅谷课程【笔记】——大数据之Shell【一】

课程视频&#xff1a;【【尚硅谷】Shell脚本从入门到实战】 一、Shell概述 为什么要学习Shell&#xff1f; 1&#xff09;需要看懂运维人员的Shell程序 2&#xff09;偶尔编写一些简单的Shell程序来管理集群、提高开发效率 什么是Shell&#xff1f; 1&#xff09;Shell是一…

ES6 对象扩展:对象简写,对象属性 表达式,扩展运算符 ...,Object.assign,Object.is,用法和应用场景

1. 对象属性简写 1.1 基本语法 // 传统写法 const name John; const age 25; const user {name: name,age: age };// ES6 简写语法 const user {name,age };1.2 实际应用场景 // 1. 函数返回对象 function createUser(name, age, email) {return {name,age,email}; }// …

【2025】camunda API接口介绍以及REST接口使用(3)

前言 在前面的两篇文章我们介绍了Camunda的web端和camunda-modeler的使用。这篇文章主要介绍camunda结合springboot进行使用&#xff0c;以及相关api介绍。 该专栏主要为介绍camunda的学习和使用 &#x1f345;【2024】Camunda常用功能基本详细介绍和使用-下&#xff08;1&…

Java进阶学习之路

Java进阶之路 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 Java进阶之路前言一、Java入门 Java基础 1、Java概述 1.1 什…

JAVA安全—反射机制攻击链类对象成员变量方法构造方法

前言 还是JAVA安全&#xff0c;哎&#xff0c;真的讲不完&#xff0c;太多啦。 今天主要是讲一下JAVA中的反射机制&#xff0c;因为反序列化的利用基本都是要用到这个反射机制&#xff0c;还有一些攻击链条的构造&#xff0c;也会用到&#xff0c;所以就讲一下。 什么是反射…

TfidfVectorizer

TF-IDF / Term Frequency - Inverse Document Frequency 作用&#xff1a;是自然语言处理NLP中常用的文本特征提取工具&#xff0c;用于将文本数据转换为数据向量。 核心思想&#xff1a;是通过统计词频和逆文档频率来量化词语在文本中的重要性。 T F − I D F ( t , d ) T F…

DeepSeek-R1 论文解读:强化学习如何 “炼” 出超强推理模型?

深度解析DeepSeek-R1&#xff1a;强化学习驱动大语言模型推理能力新突破 论文链接&#xff1a;DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning 在大语言模型&#xff08;LLMs&#xff09;飞速发展的当下&#xff0c;提升模型推理能力成…

【数据结构】循环链表

循环链表 单链表局限性单向循环链表判断链表是否有环思路code 找到链表入口思路代码结构与逻辑 code 单链表局限性 单链表作为一种基本的数据结构&#xff0c;虽然在很多场景下都非常有用&#xff0c;但它也存在一些局限性&#xff1a; 单向访问&#xff1a;由于每个节点仅包含…

ip属地是手机号还是手机位置?一文理清

在数字化和网络化的今天&#xff0c;IP属地这一概念逐渐成为了人们关注的焦点。特别是在社交媒体和在线平台上&#xff0c;IP属地的显示往往让人联想到用户的地理位置。然而&#xff0c;关于IP属地到底与手机号还是手机位置有关&#xff0c;却存在着不少误解和混淆。本文将深入…

【嵌入】基于nomic-embed-text-v1.5和HuggingFaceEmbeddings实现

测试代码 model_name = /media/zhangbin/DATA/DataCache/nomic-ai/nomic-embed-text-v1.5import osos.environ[HF_HOME] = /media/zhangbin/DATA/DataCache/#os.environ["TRANSFORMERS_CACHE"] = "/media/zhangbin/DATA/DataCache/" # 确保目录结构正确 if…

离散时间傅里叶变换(DTFT)公式详解:周期性与连续性剖析

摘要 离散时间傅里叶变换&#xff08;DTFT&#xff09;是数字信号处理领域的重要工具&#xff0c;它能将离散时间信号从时域转换到频域&#xff0c;揭示信号的频率特性。本文将深入解读DTFT公式&#xff0c;详细阐述其具有周期性和连续性的原因&#xff0c;帮助读者全面理解DT…

哈希表与散列表的原理及C++实现

1. 什么是哈希表&#xff1f; 哈希表&#xff08;Hash Table&#xff09;是一种高效的数据结构&#xff0c;用于存储键值对&#xff08;Key-Value Pairs&#xff09;。它通过哈希函数&#xff08;Hash Function&#xff09;将键&#xff08;Key&#xff09;映射到一个固定大小…

图像分类与目标检测算法

在计算机视觉领域&#xff0c;图像分类与目标检测是两项至关重要的技术。它们通过对图像进行深入解析和理解&#xff0c;为各种应用场景提供了强大的支持。本文将详细介绍这两项技术的算法原理、技术进展以及当前的落地应用。 一、图像分类算法 图像分类是指将输入的图像划分为…

前端框架中 HTML 的应用技巧:React、Vue、Angular 深度解析

系列文章目录 01-从零开始学 HTML&#xff1a;构建网页的基本框架与技巧 02-HTML常见文本标签解析&#xff1a;从基础到进阶的全面指南 03-HTML从入门到精通&#xff1a;链接与图像标签全解析 04-HTML 列表标签全解析&#xff1a;无序与有序列表的深度应用 05-HTML表格标签全面…

Vue - customRef 自定义ref

customRef 作用&#xff1a;创建一个自定义的 ref , 并对其依赖项跟踪和更新触发进行逻辑控制。 在原生 ref 的基础上&#xff0c;添加自己的逻辑等... 在 Vue 3 中&#xff0c;customRef 是一个用于创建自定义响应式引用的 API。它允许开发者控制和优化响应式引用的行为&…