2016-08-20 6 views
5

私はこのチュートリアルに従っています:https://littleosbook.github.io/#linking-the-kernelMac OS XでELF実行ファイルを作成するには?

と私はMacです。私はnasmから作成されたオブジェクトファイルを持っており、ldを使ってELF実行ファイルに変換したいと思っています。 MacのldはELF形式をサポートしていないように見えますが、このリンクステップを実行するだけでUbuntuで仮想マシンを実行したくありません。

MacにGNU ldをインストールして、Macのldと一緒に実行できますか?

+0

あなたの出力を取り出し、 "file -f "を実行して、その内容を確認します。私は "clan main.s -mllvm --x86-asm-syntax = intel -o main"を使用して、 "Mach-O 64-bit executable x86_64"を返します。 –

+0

私はそれが何を知らなかったのでエラーを投げたと思います"ファイル-f loader.o"は私に "ELF '(そのようなファイルやディレクトリはありません)を開くことはできません" – cstack

+0

OS/Xのカスタム32ビットOS開発を真剣に検討しているなら、クロスコンパイラの作成を検討することをお勧めします。 –

答えて

4

はい、できます。 ldはGNU binutilsの一部です。あなたが構築し、次のようにそれをインストールすることができます:~/.local/binutils/bin/ldにLDをインストール

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 

。 64ビットbinutilsが必要な場合は、--target=x86_64-unknown-linux-gnuを使用してください。

関連する問題