【问题标题】:How to generate the arm64 assembly of a c program on x86 macOS如何在 x86 macOS 上生成 c 程序的 arm64 程序集
【发布时间】:2022-03-29 02:49:35
【问题描述】:

我有一个 c 程序:

#include <unistd.h>
#include <stdlib.h>
int main() {
  const char msg[] = "Hello, ARM!\n";   
  write(0, msg, sizeof(msg));
  exit(0);
}   

我想生成这个 C 程序的 Apple Silicon arm64 程序集。如何在 x86 macOS 上执行此操作?

【问题讨论】:

  • write(0, ... 你确定吗?你知道什么是文件描述符0吗?
  • 不作为重复关闭,因为它看起来不是一个愚蠢或明显的问题,未来的读者可能会受益于有人将这些碎片组合成一个答案。 (我没有 Mac,所以无法测试。)
  • 你使用的是在 x86 上运行但生成 aarch64...或 Godbolt 的交叉编译器

标签: c macos assembly arm cross-compiling


【解决方案1】:

如果您已经安装了 XCode 命令行开发者工具,您可以在终端中输入:
clang -S FILE.c -o OUTPUTFILE
就是这样!

【讨论】:

  • 问题要求在 Intel Mac 上生成 ARM 程序集。在 Intel Mac 上,clang 将默认为 Intel 程序集。
  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2019-12-23
  • 1970-01-01
  • 2018-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-19
  • 2010-09-08
相关资源
最近更新 更多