当前位置: 首页 > news >正文

mac m1设备上安装Qt并使用qt编程遇到的问题以及解决方式

# 简介:

首先在M1平台上的程序可以看到有两种架构,分别是intel的(x86-64)和苹果的m1(arm64架构),根据苹果的介绍,当在m1上面运行intel程序的时候使用的是转译的方式运行的,但是这种转译不是运行时转译,而是在编译期间已经将在安装qt的时候,有这么几种方式来安装

## 1 qt-installer

下载地址:https://www.qt.io/download-thank-you?hsLang=en

下载之后安装

这里要注意,安装完成之后在我们打开QtCreator的环境配置可以看到如下信息:

这个是5.15版本的 ,这个是x86_64架构的

 这个是6.3版本的,而这个就是arm架构的了!

所以这里我们会遇到一个问题,就是当我们编程的时候,如果指定了实用qt5.15版本的,他会提示我们我们编译的是arm架构的程序,但是我们链接的库却是x86_64版本的,

building for macOS-arm64 but attempting to link with file built for macOS-x86_64

遇到这种情况,就是说我们的程序编出来的是arm架构的,但是链接到qt的时候,这个qt版本的库是x86_64版本的,架构不一样链接的时候肯定会有问题,所以我们有两种方式解决,

  1. 通过修改编译参数,将程序改成x86_64架构的。
  2. 换一个qt库,使用arm架构的库。

针对第一种方式,如果使用Cmake来管理项目,可以添加如下变量来手动指定编译的架构

set(CMAKE_OSX_ARCHITECTURES "x86_64")

针对第二种情况,可以使用6.3版本的qt,或者看下面的一种qt安装方式。

## 2 使用homebrew方式安装。

首先下载并且安装homebrew,

参考如下文章

Installing Homebrew on a Mac (treehouse.github.io)

https://phoenixnap.com/kb/install-homebrew-on-mac

安装完成之后

通过homebrew安装对应的Qt版本。

brew search qt

brew install xxxx

注意安装的目录。如果没看到,通过以下代码查看。

brew info qtxxxx

在Qtcreator的Kit中设置相应的编译器、quake、Kit。

然后正常编译项目即可。

http://www.lryc.cn/news/12806.html

相关文章:

  • tensorflow 学习笔记(二):神经网络的优化过程
  • 【Java】《Java8 实战》 CompletableFuture 学习
  • Vue3之条件渲染
  • 将Nginx 核心知识点扒了个底朝天(四)
  • 设计模式之工厂模式
  • 80.链表-由来
  • 元胞自动机
  • 设计模式之各种设计模式总结与对比
  • JAVA练习55- Fizz Buzz
  • LeetCode笔记:Biweekly Contest 98
  • HNUCM-《算法分析与设计》期末考试考前复习题
  • 算法导论【分治思想】—大数乘法、矩阵相乘、残缺棋盘
  • Java【七大排序】算法详细图解,一篇文章吃透
  • Autosar OS IOC
  • 记录一次Binder内存相关的问题导致APP被杀的BUG排查过程
  • 设计模式(十)----结构型模式之适配器模式
  • 【数据结构】——队列
  • Android OTA升级常见问题的解决方法
  • 说说Hibernate
  • 目标检测论文阅读:DETR算法笔记
  • Golang sync.Once 源码浅析
  • C++面向对象(上)
  • 经常用但是不知道什么是BFC?
  • GO的临时对象池sync.Pool
  • 高精度算法一
  • 2023年全国最新食品安全管理员精选真题及答案1
  • C++入门:引用
  • SpringSecurity的权限校验详解说明(附完整代码)
  • Java-集合(5)
  • 研制过程评审活动(四)设计定型阶段