首页 > 解决方案 > 在 Intel 机器上构建 Apple Silicon 二进制文件

问题描述

如何在 macOS 11 (Intel) 上编译 C 项目以在 Silicon 上工作?

我当前的构建脚本很简单:

./configure
make
sudo make install

我尝试过使用--hostand--target标志,aarch64-apple-darwin无论arm-apple-darwin是否有任何运气。

二进制始终默认为x86_64

> file foobar.so
foobar.so: Mach-O 64-bit bundle x86_64

更新:指定 时似乎找不到 cc 和 gcc --host

checking for arm-apple-darwin-cc... no
checking for arm-apple-darwin-gcc... no

标签: cmacosarmautotoolsapple-silicon

解决方案


我在此页面上找到了使用此功能的提示:

-target arm64-apple-macos11

当我从我的 mac 运行它时:

clang++ main.cpp -target arm64-apple-macos11

生成的 a.out 二进制文件如下所示:

% file a.out
a.out: Mach-O 64-bit executable arm64

我安装了 XCode 12.2。

我面前没有 Arm Mac,所以我假设这是可行的。


推荐阅读