2016-12-18 2 views
0

Ich folge einem Tutorial, wie man ein Betriebssystem von Grund auf neu erstellt. Ich bin an dem Punkt, wo ich anfangen muss, Code in C zu schreiben, aber ich muss es im freistehenden Modus zu roher Binärdatei kompilieren. Die angegebenen Befehle sind:Wie kompiliert man C zu roher Binärdatei in OSX?

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

Der erste Befehl funktioniert, der zweite nicht. Der Linker von OSX weiß nichts von -Ttext. Wer kennt das, ohne ein virtuelles Linux-System zu benutzen? Es muss einen Weg geben.

Objcopy funktioniert auch nicht.

+3

Ich bin mir nicht sicher, warum Sie denken, es einen Weg geben muss. Apple ermutigt solche Dinge nicht. Wo planen Sie dieses Programm? Haben Sie überlegt, ob die GNU BinUtils auf/für Mac OS (Mac OS X) kompiliert werden können? Ich habe es in letzter Zeit nicht ausprobiert; Ich kann mich nicht erinnern, ob ich es in der Vergangenheit versucht habe oder nicht. –

+0

Danke, ich habe mich darum gekümmert –

Antwort

0

Ich heruntergeladen die GNU-Utils mit Homebrew und das kam mit Gobjcopy, die ich verwendet habe. Ich habe die Download-Informationen von hier: https://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/

Ich habe nur alle installatoin Befehle in eine SH-Datei eingefügt und ausgeführt.

Die Befehle landete ich mit bis nach waren installieren:

gcc -ffreestanding -c kernel.c -o kernel.o 
gobjcopy -O binary kernel.o kernel.bin