小编Tir*_*nik的帖子

如何从 Apple Silicon 中的 C 源代码创建 x86_64 汇编文件?

我当前的设置是 m1 MacBook Air。

\n

我正在阅读一本低级编程书籍。\n
\n我希望将我编写的 C 代码编译为 x86_64 程序集。

\n

有了 clang 我可以很容易地做到这一点:

\n
clang -target x86_64 -masm=intel -S add_two_numbers.c\n
Run Code Online (Sandbox Code Playgroud)\n

但当我包含一个库(例如 stdio)时它不起作用。

\n
\xe2\x9d\xaf clang -target x86_64 -masm=intel -S hello.c\nhello.c:1:10: fatal error: 'stdio.h' file not found\n#include <stdio.h>\n         ^~~~~~~~~\n
Run Code Online (Sandbox Code Playgroud)\n

正如 clang 文档所说,我可以手动安装 x86_64 库并执行以下操作:

\n
clang -target x86_64 -masm=intel -I path/to/Include -L path/to/Library -S hello.c\n
Run Code Online (Sandbox Code Playgroud)\n

但我找不到可在 MacOS 上下载的预构建包。我试过交叉编译,太费力了。

\n

所以我放弃了,转而追求更简单的东西。我找到了这个问题的解决方案,我将在下面作为答案分享。

\n

macos assembly x86-64 cross-compiling apple-silicon

0
推荐指数
1
解决办法
1075
查看次数

标签 统计

apple-silicon ×1

assembly ×1

cross-compiling ×1

macos ×1

x86-64 ×1