cygwin: andren gcc setzen

Gast #3588583
Lesenswert?

Hallo,
Anfängerfrage,

ich benutze Win7 und dort wurden ARM Compiler von einer SDK installiert.
Jetzt möchte ich mit Cygwin auf die ARM Compiler zugreifen.
Momentan kennt Cygwin gar kein gcc.
1
$ gcc
2
-bash: gcc: Kommando nicht gefunden.

Ich habe bereits eine Pfad angelegt:
1
$ export PATH=$PATH:/cygdrive/c/SDK/gnu/arm/nt/bin/

Aber wie verklicker ich Cygwin jetzt, daß er bei einem gcc-Aufruf in 
../bin nachschauen soll?
Außerdem befinden sich zwei Compiler im /bin. arm-eabi & 
arm-linux-gnueabi.
Wie kann ich geschickt zwischen den beiden auswählen, bevor gcc 
aufgerufen wird?

Danke
#3591650
Lesenswert?

Ich gehe mal davon aus, dass du ein Makefile benutzt. Und wenn nicht, 
leg dir eins an. Beide Versionen vom gcc in PATH eintragen.

Dann kannst du einfach mit
1
make CC=arm-eabi-gcc
oder mit
1
make CC=arm-linux-gnueabi-gcc
deinen Code erstellen

Wie du ein Makefile erstellst googlest du am besten (makefile tutorial 
deutsch).

Nur zur info gcc (ohne arm-eabi, aka Host/Target settings) benutzt du 
nur, um Programme zu erstellen die auf dem Rechner laufen sollen auf dem 
sie erstellt werden.
#3594036
Lesenswert?

olpo schrieb:
> Aber wie verklicker ich Cygwin jetzt, daß er bei einem gcc-Aufruf in
> ../bin nachschauen soll?

Das ist nicht so schlau.
gcc sollte weiterhin auf den nativen compiler (falls installiert) 
zeigen.
Der Cross-Compiler hat deshalb normalerweise einen anderen Namen, z.B. 
avr-gcc oder in in deinem Fall vielleicht arm-eabi-gcc und unter diesen 
Namen wird er aufgerufen.

Beim compilieren mit make gibt es ein Makro CC, das normalerweise auf 
gcc zeigt.
Beim Cross-compilieren kann man einfach das Macro überschreiben, so wie 
es Eduard beschrieben hat oder man fügt eine neue Regel ein

.c.o:
             arm-eabi-gcc -c $(CFLAGS) $(CPPFLAGS) -o $@ $<

mit der man die vordefinierte Regel zum compilieren von c-Files 
überschreibt.

Die Reihenfoge im Pfad hat übrigens nicht zur Sache, weil der 
Cross-Compiler einen anderen Namen hat. Wichtig ist nur, dass das 
Verzeichnis im Pfad ist, damit er überhaupt gefunden werden kann.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren