如何在 Mac OS X 上创建 ELF 可执行文件?

How to create an ELF executable on Mac OS X?

我正在学习本教程:https://littleosbook.github.io/#linking-the-kernel

我在 Mac。我现在有一个从 nasm 创建的目标文件,我想使用 ld 将它变成一个 ELF 可执行文件。 mac 上的 ld 看起来不支持 ELF 格式,但我不想 运行 虚拟 mac 与 Ubuntu只是为了执行此 link 步骤。

是否可以在 mac 和 运行 上安装 GNU ld 以及 Mac 的 ld

是的,你可以。 ld 是 GNU binutils 的一部分。您可以按如下方式构建和安装它:

wget -nc https://ftp.gnu.org/gnu/binutils/binutils-2.27.tar.gz
tar xzf binutils-2.27.tar.gz
cd binutils-2.27
mkdir build && cd build
../configure --prefix=${HOME}/.local/binutils --target=i386-unknown-linux-gnu
make -j7
make install

这会将 ld 安装到 ~/.local/binutils/bin/ld。如果你想要一个 64 位的 binutils,使用 --target=x86_64-unknown-linux-gnu.