2016-12-18 11 views
0

私は最初からOSを作成する方法のチュートリアルに従っています。私はC言語でコードを書く必要があるのですが、フリースタンディングモードで、生のバイナリにコンパイルする必要があります。指定されたコマンドは次のとおりです。OSXでCをrawバイナリにコンパイルするには?

gcc -ffreestanding -c kernel.c -o kernel.o 
ld -o kernel.bin -Ttext 0x1000 kernel.o --oformat binary 

第1のコマンドは機能し、第2のコマンドは機能しません。 OSXのリンカは、-Ttextについて何も知らない。誰もが仮想Linuxシステムを使用せずにこれを回避する方法を知っていますか?方法が必要です。

objcopyも機能しません。

+3

私はあなたが方法がなければならないと思う理由はわかりません。 Appleはそのようなことを推奨していません。このプログラムをどこで実行する予定ですか? GNU BinUtilsをMacOS(Mac OS X)上で/コンパイルできるかどうか考えましたか?私は最近それを試していない。私は過去にそれを試したかどうかを思い出さない。 –

+0

ありがとう、私はそれを見て –

答えて

0

私はGNU utilsをhomebrewを使ってダウンロードしました。これは私が使ったgobjcopyに付属しています。私はここからダウンロード情報を得ました: https://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/

すべてのinstallatoinコマンドを.shファイルに貼り付けて実行しました。

私がインストールした後に使用して終了するコマンドは以下の通りであった。

gcc -ffreestanding -c kernel.c -o kernel.o 
gobjcopy -O binary kernel.o kernel.bin 
関連する問題