c++ mac/m1/intel 如何获取cpu架构?

问题描述 投票:0回答:1

我需要在运行时找出CPU正在运行哪种架构。 到目前为止我已经使用了qt:

QSysInfo::currentCpuArchitecture()
但是有一个问题。

当我运行为 x86_64 或 arm64 编译的应用程序时,返回的值将会改变。因此,这不会返回系统本机运行的硬件架构,而是返回 mac 模拟的硬件架构。假设如果我运行 x86_64,它可能会通过 Rosetta 运行,然后拱门将是 x86_64 而不是 arm64。

我需要一种方法来找出系统的硬件架构,而不是模拟的。我该怎么办?

宏/等将不起作用。

从应用程序内运行 QProcess 仍会从

uname -p
等返回 x86_64。

c++ macos architecture arm apple-m1
1个回答
1
投票

启动QProcess不起作用,他继承了基础应用程序架构。

我发现苹果添加了一个命令来确定我是否在“翻译”模式下运行,然后可以将其用作指示我们是在 intel 还是 arm 上。

https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment

© www.soinside.com 2019 - 2024. All rights reserved.