【发布时间】:2016-12-27 19:52:33
【问题描述】:
我正在关注本教程:https://littleosbook.github.io/#linking-the-kernel
我在 Mac 上。我现在有一个从nasm 创建的目标文件,我想使用ld 将它变成一个ELF 可执行文件。 mac 上的ld 看起来不支持 ELF 格式,但我不想为了做这个链接步骤而用 Ubuntu 运行虚拟机。
是否可以在 Mac 上安装 GNU ld 并与 Mac 的 ld 一起运行?
【问题讨论】:
-
获取您的输出并运行“file -f
”并查看它的内容。我使用“clang main.s -mllvm --x86-asm-syntax=intel -o main”,这给了我“Mach-O 64-bit executable x86_64” -
我认为这引发了错误,因为它不知道如何处理 ELF 文件:“file -f loader.o”给了我“无法打开 `ELF'(没有这样的文件或目录)"
-
如果您正在认真研究 OS/X 上的自定义 32 位操作系统开发,我将建议您至少考虑创建一个交叉编译器。