我需要在运行时找出CPU正在运行哪种架构。 到目前为止我已经使用了qt:
QSysInfo::currentCpuArchitecture()
但是有一个问题。
当我运行为 x86_64 或 arm64 编译的应用程序时,返回的值将会改变。因此,这不会返回系统本机运行的硬件架构,而是返回 mac 模拟的硬件架构。假设如果我运行 x86_64,它可能会通过 Rosetta 运行,然后拱门将是 x86_64 而不是 arm64。
我需要一种方法来找出系统的硬件架构,而不是模拟的。我该怎么办?
宏/等将不起作用。
从应用程序内运行 QProcess 仍会从
uname -p
等返回 x86_64。
启动QProcess不起作用,他继承了基础应用程序架构。
我发现苹果添加了一个命令来确定我是否在“翻译”模式下运行,然后可以将其用作指示我们是在 intel 还是 arm 上。
https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment