Scorpion
Aktives Mitglied
Thread Starter
- Dabei seit
- 03.02.2005
- Beiträge
- 106
- Reaktionspunkte
- 0
Hallo,
ich wusste nicht richtig, ob das noch in den Bereich Unix fällt oder schon zur Programmierung fällt, ich hab es einfach mal hier reingeschrieben.
Seit einiger Zeit bin ich schon dran ein kleines OS für die i386 Plattform zu schreiben. Mein Bootloader in Assembler geschrieben läuft ohne Probleme, jetzt wollte ich aber mit C weitermachen und da gibt es ein kleines Problem mit dem Linken. Ich habe dazu auch schonmal ein Tutorial durchgesehen, hier der Link dazu, ist leider englisch.
Jetzt zum eigentlichen Problem:
Damit ich die verschiedenen Dateien wie die Assembler-Datei, die die C-Datei lädt, am Ende zusammenbringen kann, brauche ich ja den Linker. So jetzt hier der Ausschnitt aus dem Tutorial:
Hier wird eine *.o Datei aus der Datei erstellt, die später das C-Programm laden soll. So weit, so gut, nasm habe ich schon seit längerem auf unter OS X zum Laufen gebracht.
Hier geschieht das Gleiche wie oben mit der C-Datei.
Und hier ist nun das Problem, gebe ich das nun im Terminal ein, kommt folgender Fehler:
Was hat das zu bedeuten?
Scorpion
ich wusste nicht richtig, ob das noch in den Bereich Unix fällt oder schon zur Programmierung fällt, ich hab es einfach mal hier reingeschrieben.
Seit einiger Zeit bin ich schon dran ein kleines OS für die i386 Plattform zu schreiben. Mein Bootloader in Assembler geschrieben läuft ohne Probleme, jetzt wollte ich aber mit C weitermachen und da gibt es ein kleines Problem mit dem Linken. Ich habe dazu auch schonmal ein Tutorial durchgesehen, hier der Link dazu, ist leider englisch.
Jetzt zum eigentlichen Problem:
Damit ich die verschiedenen Dateien wie die Assembler-Datei, die die C-Datei lädt, am Ende zusammenbringen kann, brauche ich ja den Linker. So jetzt hier der Ausschnitt aus dem Tutorial:
nasm -f aout kernel_start.asm -o ks.o
Hier wird eine *.o Datei aus der Datei erstellt, die später das C-Programm laden soll. So weit, so gut, nasm habe ich schon seit längerem auf unter OS X zum Laufen gebracht.
gcc -c kernel.c -o kernel.o
Hier geschieht das Gleiche wie oben mit der C-Datei.
ld -T link.ld -o kernel.bin ks.o kernel.o
Und hier ist nun das Problem, gebe ich das nun im Terminal ein, kommt folgender Fehler:
ld: unknown flag: -T
Was hat das zu bedeuten?
Scorpion
Zuletzt bearbeitet von einem Moderator: