Unterschied zwischen Cross GCC und Linux GCC Toolchain

24

Beim Erstellen eines neuen C ++ - Projekts in Eclipse werde ich nach der Toolchain gefragt.

Was ist der praktische Unterschied zwischen diesen Werkzeugketten - Cross GCCund Linux GCC. Unter welchen Umständen verwenden Sie sie? Hat es etwas damit zu tun, ob das Projekt sowohl auf Linux- als auch auf Windows-Computern kompiliert wird?

In einer der Antworten können wir lesen:

Im Allgemeinen ist ein Cross-Compiler ein Compiler, der Code für eine andere Art von System erzeugt als für Ihr System.

Wenn ich also ein Projekt auf einem Zielcomputer mit eigenen Makefiles kompiliere, spielt es keine Rolle, welche Option ich hier wähle, oder?

Wiktor
quelle
10
Cross GCC bedeutet, dass Sie Ihr Projekt für eine andere Architektur kompilieren, z. B. einen x86-Prozessor haben und für ARM kompilieren möchten. Linux GCC bedeutet nur das Standard-GCC
Ulrich Dangel

Antworten:

16

Der Cross Compiler Artikel auf Wikipedia ist ziemlich gut. Im Allgemeinen ist ein Cross-Compiler ein Compiler, der Code für eine andere Art von System erzeugt als für Ihr System. Dies bedeutet normalerweise eine andere Zielhardwarearchitektur, kann aber auch ein anderes Zielbetriebssystem (oder beides) bedeuten.

Theoretisch könnten Sie diese kombinieren und einen Cross-Compiler auf Architektur A 1 und Betriebssystem S 1 verwenden , um einen Cross-Compiler zu erstellen, der auf Architektur A 2 unter Betriebssystem S 2 ausgeführt wird und Code für Betriebssystem S 3 auf Architektur A 3 erzeugt .

Wie Ulrich in seinem Kommentar erwähnt, sollte Linux GCC Ihr "nativer" Compiler sein (dh für dasselbe Ziel).

peterph
quelle