GCC, AVR-GCC, ARM-GCC

OP #4213572
Lesenswert?
• ▲
▼
Hallo zusammen,
vielleicht ist de Frage für den GCC-Kenner banal, aber ich habe über den 
internen Aufbau der GCC noch nicht die Informationen gefunden, die mir 
helfen, die Frage zu beantworten. Auf meinem Windows-Rechner habe ich 
ein MinGW, einen AVR-GCC und einen ARM-GCC (none-Eabi) installiert. Da 
es sich um jeweils unterschiedliche Versionen handelt, sind viele 
Dateien nicht binär identisch, was die Suche nach 
Gemeinsamkeiten/Unterschiedem erschwert.

Beim AVR-GCC haben viele Executables das Namenspräfix "AVR-". Ansonsten 
sieht es auf den ersten Blick so aus, als brächte MinGW auch die libc 
für andere Plattformen mit.

Was ist also der Unterschied zwischen diesen drei Ausprägungen des GCCs?

Viele Grüße
W.T.
Moderator Persönliche Seite #4214058
Lesenswert?
• ▲
▼
Walter T. schrieb:
> Was ist also der Unterschied zwischen diesen drei Ausprägungen des GCCs?

In erster Linie natürlich, dass sie für verschiedene Ziel-CPUs
(“target”) compiliert worden sind und entsprechend die jeweiligen
Backends Code für genau diese Plattform erzeugen.

Neben dem Compiler selbst gehört dazu jeweils auch eine eigene
Version der Binutils (Assembler und Linker, wobei sich insbesondere
natürlich die Assembler zwischen den Zielsystemen stark unterscheiden)
sowie normalerweise auch einer Systembibliothek.
OP #4215412
Lesenswert?
• ▲
▼
Hallo zusammen,

danke für die Antworten.

Jörg W. schrieb:
> [...] dass sie für verschiedene Ziel-CPUs
> (“target”) compiliert worden sind [...]

OK, daß der Build-Prozeß sich auch für verschiedene Ziel-Plattformen 
unterscheidet war mir noch gar nicht bewußt. Bislang ging ich implizit 
davon aus, daß jeder GCC auf jeder Plattform erst einmal prinzipiell 
dazu in der Lage ist, für alle Zielplattformen zu kompilieren.

Viele Grüße
W.T.
Moderator Persönliche Seite #4215439
Lesenswert?
• ▲
▼
Walter T. schrieb:
> OK, daß der Build-Prozeß sich auch für verschiedene Ziel-Plattformen
> unterscheidet war mir noch gar nicht bewußt.

Das wird beim configure festgelegt.
1
mkdir build && cd build
2
../configure => Konfiguration für target = host

Dagegen
1
mkdir build-avr && cd build-avr
2
../configure --target=avr
3
cd ..
4

5
mkdir build-arm && cd build-arm
6
../configure --target=arm-none-eabi
7
cd ..

konfigurieren Cross-Compiler.  Ein Cross-Compiler muss nicht notwendig
eine andere CPU sein, es kann auch eine andere Plattform mit gleicher
CPU-Architektur sein, bspw. wenn man ein MinGW32-Target unter einem
unixoiden OS konfigurieren möchte (mit sowas baue ich die
Windows-Binaries für AVRDUDE).

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.