| Zeile 10: | Zeile 10: | ||
MinGW ist ein Port des GCC nach Windows. Der mitgelieferte Compiler von MinGW kann keine ELF-Dateien erzeugen und ist deswegen nicht geeignet, um LOST zu kompilieren. Darum muss ein Cross-Compiler benutzt werden. | MinGW ist ein Port des GCC nach Windows. Der mitgelieferte Compiler von MinGW kann keine ELF-Dateien erzeugen und ist deswegen nicht geeignet, um LOST zu kompilieren. Darum muss ein Cross-Compiler benutzt werden. | ||
| − | Einen Cross-Compiler, den ich selbst aus den ungeänderten Sourcen kompiliert habe, gibt es unter [http://jidder.de/lost/files/ | + | Einen Cross-Compiler, den ich selbst aus den ungeänderten Sourcen für mein eigenes Frickel-OS namens [[IncOS]] kompiliert habe, gibt es unter [http://jidder.de/lost/files/incoscc-with-cpp-and-with-without-i18n.rar]. Darin enthalten ist der GCC 4.2.0 mit dem Target ELF und die Binutils 2.17. Außerdem benötigen wir die POSIX-Umgebung für MinGW [http://mingw.org/download.shtml MSYS] (aktuelle Version: MSYS-1.0.10.exe) und [http://sourceforge.net/project/showfiles.php?group_id=6208&package_id=47034 NASM] (aktuelle Version: nasm-0.98.39-win32.zip). |
Wenn iht die drei Dateien runtergeladen habt, erstellt ein Verzeichnis namens C:\lostdev. (Wer seine Werkzeuge woanders platzieren möchte, kann das natürlich auch tun. Im folgenden werde ich dennoch von diesem Pfad ausgehen.) Startet den Setup von MSYS und klickt euch bis zur Angabe des Pfads durch. Gebt da C:\lostdev\msys an. Dann weiter bis zum Ende durchklicken. Wenn eine Eingabeaufforderung auftaucht, die etwas von "This is a post install process" erzählt, brecht das durch die Eingabe von "n" ab. | Wenn iht die drei Dateien runtergeladen habt, erstellt ein Verzeichnis namens C:\lostdev. (Wer seine Werkzeuge woanders platzieren möchte, kann das natürlich auch tun. Im folgenden werde ich dennoch von diesem Pfad ausgehen.) Startet den Setup von MSYS und klickt euch bis zur Angabe des Pfads durch. Gebt da C:\lostdev\msys an. Dann weiter bis zum Ende durchklicken. Wenn eine Eingabeaufforderung auftaucht, die etwas von "This is a post install process" erzählt, brecht das durch die Eingabe von "n" ab. | ||
| Zeile 16: | Zeile 16: | ||
Entpacke danach NASM in das Verzeichnis C:\lostdev\nasm. Achte dabei darauf, dass die Datei nasmw.exe direkt in dem Verzeichnis C:\lostdev\nasm liegt und nicht in irgendwelchen Unterverzeichnissen. Benenne außerdem die Datei nasmw.exe in nasm.exe um, damit NASM von dem build-Skript erkannt wird. | Entpacke danach NASM in das Verzeichnis C:\lostdev\nasm. Achte dabei darauf, dass die Datei nasmw.exe direkt in dem Verzeichnis C:\lostdev\nasm liegt und nicht in irgendwelchen Unterverzeichnissen. Benenne außerdem die Datei nasmw.exe in nasm.exe um, damit NASM von dem build-Skript erkannt wird. | ||
| − | Entpacke dann die Datei | + | Entpacke dann die Datei incoscc-with-cpp-and-with-without-i18n.rar in dem lostdev Verzeichnis, so dass z.B. in c:\lostdev\bin die Datei i586-elf-addr2line.exe liegt. |
Damit der Compiler und der Assembler auch gefunden werden, muss die PATH-Variable entsprechend geändert werden. Ich bevorzuge für jede Compilerumgebung auf meinem Computer eine Batch-Datei, die die Umgebung einrichtet. Für LOST sieht sie so aus: | Damit der Compiler und der Assembler auch gefunden werden, muss die PATH-Variable entsprechend geändert werden. Ich bevorzuge für jede Compilerumgebung auf meinem Computer eine Batch-Datei, die die Umgebung einrichtet. Für LOST sieht sie so aus: | ||
| Zeile 39: | Zeile 39: | ||
===Keine Unterstützung für C++=== | ===Keine Unterstützung für C++=== | ||
Als ich den Crosscompiler erstellt habe, enthielt LOST noch keinen C++-Code, deswegen gibt es mit den neueren Versionen Abbrüche beim Kompilieren. Die einfachste Lösung ist das Verzeichnis src/modules/cpp zu löschen und gegebenenfalls make clean auszuführen. Alternativ kann man sich einen Crosscompiler mit C++-Unterstützung bauen. | Als ich den Crosscompiler erstellt habe, enthielt LOST noch keinen C++-Code, deswegen gibt es mit den neueren Versionen Abbrüche beim Kompilieren. Die einfachste Lösung ist das Verzeichnis src/modules/cpp zu löschen und gegebenenfalls make clean auszuführen. Alternativ kann man sich einen Crosscompiler mit C++-Unterstützung bauen. | ||
| + | |||
| + | ==Ältere Crosscompiler== | ||
| + | Aus sentimentalen Gründen hab ich mal einen älteren GCC 4.1.1 mit Binutils 2.17 online gelassen. Den gibt es unter [http://jidder.de/lost/files/lostcc.rar]. (Workaround: Einfach betroffene Verzeichnisse löschen.) Dieser Crosscompiler hat keinen C++ Support, weil zu dessen Zeiten kein C++ unter LOST verwendet wurde. Originalanleitung dazu findet man unter [http://lowlevel.brainsware.org/wiki/index.php?title=Crosscompiler_f%C3%BCr_Windows&oldid=1957], der einzige unterschied ist allerdings das Entpacken des RAR-Archivs. ;) | ||
[[Category:Tutorials]] | [[Category:Tutorials]] | ||