Cross-Compiler — Änderungen 9795 → 9796

Zeile 25: Zeile 25:
  
 
==== Cygwin ====
 
==== Cygwin ====
−
Cygwin kann als "emulierte Linux-Umgebung" unter MS Windows angesehen werden. Cygwin lässt sich leicht installieren: [http://www.cygwin.com/setup.exe diese] Setup-Datei reicht, den Rest erledigt der Installer. Es können dann alle benötigten Pakete heruntergeladen und ebenfalls installiert werden. Besonders wichtig sind folgende Pakete:  
+
Cygwin kann als „emulierte Linux-Umgebung“ unter MS Windows angesehen werden. Cygwin lässt sich leicht installieren: [http://www.cygwin.com/setup.exe diese] Setup-Datei reicht, den Rest erledigt der Installer. Es können dann alle benötigten Pakete heruntergeladen und ebenfalls installiert werden. Besonders wichtig sind folgende Pakete:  
  
−
* Devel -> gcc4
+
* Devel → gcc4
−
* Devel -> make
+
* Devel → make
−
* Libs -> libgmp-devel
+
* Libs → libgmp-devel
−
* Libs -> libmpfr-devel
+
* Libs → libmpfr-devel
−
* Web   -> wget
+
* Web → wget
  
 
optional:
 
optional:
−
* Devel -> [[Netwide Assembler | nasm]]
+
* Devel → [[Netwide Assembler | nasm]]
  
 
Ist Cygwin erfolgreich eingerichtet, können die binutils sowie der gcc entsprechend der Vorgehensweise unter Ablauf gebaut werden.
 
Ist Cygwin erfolgreich eingerichtet, können die binutils sowie der gcc entsprechend der Vorgehensweise unter Ablauf gebaut werden.
Zeile 50: Zeile 50:
 
  $ tar -xjf gcc-core-4.4.2.tar.bz2
 
  $ tar -xjf gcc-core-4.4.2.tar.bz2
  
−
ausgepackt werden. Wenn noch weitere Sprachen zusätzlich zu C unterstützt werden sollen, müssen weitere Pakete heruntergeladen werden. Für C++ benötigt man zum Beispiel [http://ftp.gnu.org/gnu/gcc/gcc-4.4.2/gcc-g++-4.4.2.tar.bz2 dieses] Paket. Die komplette Liste befindet sich im Verzeichnis der jeweiligen GCC-Version auf dem FTP-Server. Danach müssen sie mit speziellen Parametern konfiguriert werden. Der Einfachheit halber sollte man dabei folgende Variablen setzen:
+
entpackt werden. Wenn noch weitere Sprachen zusätzlich zu C unterstützt werden sollen, müssen weitere Pakete heruntergeladen werden. Für C++ benötigt man zum Beispiel [http://ftp.gnu.org/gnu/gcc/gcc-4.4.2/gcc-g++-4.4.2.tar.bz2 dieses] Paket. Die komplette Liste befindet sich im Verzeichnis der jeweiligen GCC-Version auf dem FTP-Server. Danach müssen sie mit speziellen Parametern konfiguriert werden. Der Einfachheit halber sollte man dabei folgende Variablen setzen:
  
 
  $ export TARGET=ziel-plattform
 
  $ export TARGET=ziel-plattform
 
  $ export PREFIX=wo-die-crossutils-landen-sollen
 
  $ export PREFIX=wo-die-crossutils-landen-sollen
  
−
Dann reicht es, beim configure --target=$TARGET und --prefix=$PREFIX anzugeben. Auch ist es sinnvoll, die binutils und den gcc außerhalb ihrer entpackten Verzeichnisse zu bauen, also immer separate Verzeichnisse zu erstellen (gcc-ARCHITEKTUR und binutils-ARCHITEKTUR eignen sich beispielsweise hierfür ). Jetzt konfigureren wir die Pakete mit folgendne Befehlen(jeweils im entsprechendem separatem Verzeichniss(gcc-ARCHITEKTUR und binutils-ARCHITEKTUR) ausführen):
+
Dann reicht es, beim configure --target=$TARGET und --prefix=$PREFIX anzugeben. Auch ist es sinnvoll, die binutils und den gcc außerhalb ihrer entpackten Verzeichnisse zu bauen, also immer separate Verzeichnisse zu erstellen (gcc-ARCHITEKTUR und binutils-ARCHITEKTUR eignen sich beispielsweise hierfür ). Jetzt konfigureren wir die Pakete mit folgendne Befehlen (jeweils im entsprechenden separaten Verzeichnis (gcc-ARCHITEKTUR und binutils-ARCHITEKTUR) ausführen):
  
 
binutils:
 
binutils:
−
  $ Pfad/zum/code/configure  --prefix=$PREFIX --with-sysroot=$PREFIX --target=$TARGET --disable-nls
+
  $ Pfad/zum/Code/configure  --prefix=$PREFIX --with-sysroot=$PREFIX --target=$TARGET --disable-nls
  
 
gcc:
 
gcc:
 
  $ Pfad/zum/Code/configure --prefix=$PREFIX --target=$TARGET --disable-nls --enable-languages=c --disable-shared --disable-libssp
 
  $ Pfad/zum/Code/configure --prefix=$PREFIX --target=$TARGET --disable-nls --enable-languages=c --disable-shared --disable-libssp
  
−
für welche CPU Architektur der Cross-Compiler gebaut wird, wird mit dem <i>target</i> Parameter angegeben. Hier mal eine nicht vollständige Liste der wichtigsten Targets:
+
für welche CPU-Architektur der Cross-Compiler gebaut wird, wird mit dem <i>target</i>-Parameter angegeben. Hier eine nicht vollständige Liste der wichtigsten Targets:
−
* ''x86_64-elf'' (um auf einem 32 Bit Prozessor/OS für ein 64Bit Prozessor/OS zu kompilieren. Kann auch verwendet werden um sich einen Cross-Compiler für Windows zu bauen.)
+
* ''x86_64-elf'' (um auf einem 32-Bit-Prozessor/-OS für ein(en) 64-Bit-Prozessor/-OS zu kompilieren. Kann auch verwendet werden, um sich einen Cross-Compiler für Windows zu bauen.)
−
* ''arm-unknown-linux-gnu'' (um für ARM Systeme Code zu kompilieren.)
+
* ''arm-unknown-linux-gnu'' (um für ARM-Systeme Code zu kompilieren.)
  
−
Wenn weitere Sprachen unterstützt werden sollen und die entsrechenden Pakete heruntergeladen und entpackt wurden, dann müssen die Sprachen bei <i>--enable-languages=</i> durch Kommata getrennt aufgezählt werden.
+
Wenn weitere Sprachen unterstützt werden sollen und die entsprechenden Pakete heruntergeladen und entpackt wurden, dann müssen die Sprachen bei <i>--enable-languages=</i> durch Kommata getrennt aufgezählt werden.
 
Nachdem die Pakete nun konfiguriert wurden, müssen diese jeweils noch mit
 
Nachdem die Pakete nun konfiguriert wurden, müssen diese jeweils noch mit