c++ - 如何让 Qt Creator 在 Mac M1 上使用 Rosetta 和 x86 编译器?

标签 c++ qt qt-creator apple-m1 rosetta

我在带有 M1 芯片的 Mac mini 上使用 Qt 5.15.2。这工作正常(由于 Rosetta)。下面是在这台电脑上找到的编译器Qt Creator的列表,其中就有我用的C++, x86 64bit。没问题。

compilers amiable on the first M1 computer

我想在(较新的)Mac Book Pro(也带有 M1 芯片)上使用相同的设置。下面是 Qt Creator 在这台计算机上找到的编译器列表,x86 现在不见了!

compilers amiable on the new M1 computer

我不知道新的 M1 计算机上是否有 x86 编译器。我已经为 XCode 13.2 安装了 Xcode 和命令行工具。

  1. 我可以在某个地方告诉 Qt Creator 部署目标是 x86 吗?

  2. /usr/bin/clang++ 只能为 ARM/M1 芯片编译,还是它也可以生成并链接到 x86 代码?

  3. 如果没有,我如何知道我的新 M1 计算机上是否有 x86 编译器?

  4. 如果缺少编译器,如何安装?

如有任何帮助,我们将不胜感激!

最佳答案

一些有用的提示,我刚刚在 2021 M1 Mac 上使用 Qt 5.15.2 设置了一个项目。

请注意,对于 Qt >= 6,这可能会有所不同。

  1. Can I somewhere tell Qt Creator that the deployment target is x86?

是的,您可以在工具包的build设置中使用特定参数来执行此操作。

  • QMAKE_APPLE_DEVICE_ARCHS="x86_64" 附加参数添加到 qmake。
  • 此外,添加一个额外的 CMake 选项:-DCMAKE_OSX_ARCHITECTURES:STRING="x86_64"

ℹ️ 在项目 View 中单击Manage Kits.. 以打开首选项编辑器,您可以在其中更新您的 CMake 配置。


  1. Does /usr/bin/clang++ only compile for the ARM/M1-chip, or can it also produce and link to x86 code?

安装了 rosetta (/usr/sbin/softwareupdate –install-rosetta –agree-to-license) 和上面的配置,是的,您可以编译和链接 x86 二进制文件。

关于c++ - 如何让 Qt Creator 在 Mac M1 上使用 Rosetta 和 x86 编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70709144/

相关文章:

c++ - C++ 标准是否明确允许/禁止使用不完整类型实例化 std::function?

c++ - 搜索已排序的 float 数组

c++ - 如何强制 QDateTime::fromString 读取 UTC 时间

c++ - 一对整数数组

C++ : Can't pass generic function to another one as a parameter

c++ - 带有 C++11 线程的 Qtcreator

qt - 无法启动程序。路径或权限错误?在 Qt 中

linux - 切换到 Linux 环境,现在 fscanf 不起作用

c++ - 调整 Qt UI 元素的大小

c++ - Qt invokeMethod 和调用静态方法?