如何在 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
.
我正在学习本教程: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
.