c - 在 Intel 机器上构建 Apple Silicon 二进制文件
问题描述
如何在 macOS 11 (Intel) 上编译 C 项目以在 Silicon 上工作?
我当前的构建脚本很简单:
./configure
make
sudo make install
我尝试过使用--host
and--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
解决方案
我在此页面上找到了使用此功能的提示:
-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,所以我假设这是可行的。
推荐阅读
- excel - 根据另一列中的字符串值在 Excel 中生成唯一的顺序 ID
- android - Android Studio Kotlin class.java 未解析参考
- python-3.x - /usr/bin/python3 和 /bin/python3 有什么区别
- javascript - 如何在 JavaScript 中使用 getDate 排除一周中的某一天?
- python - 具有 2 个工作程序和 2 个线程的 Gunicorn config.py 文件仅并行处理 2 个请求
- ios - 如何使用可用设备列表以编程方式触发 AirDrop
- mocha.js - 如何在 mocha 框架中获取 allure 记者的最新报告
- python - 如何在 pandastable 中自定义表格的工具栏和状态栏的显示
- google-cloud-platform - 什么是 google_service_account_iam_binding(与 google_project_iam_binding 相比)
- python-3.x - Python Asyncio breaks when client disconnects/reconnects