Forum: Compiler & IDEs Makefile Compiler


von Peter (Gast)


Lesenswert?

Hallo,
wie kann ich den zu verwendenden Compiler im Makefile einstellen?
Es geht um Crosscompiling ich möchte folgenden Compiler verwenden 
anstelle des "normalen" GCC.

von Peter (Gast)


Lesenswert?

sorry ich habe das Verzeichnis des Compilers den ich verwenden möchte 
nicht genannt.
/codesourcery/bin/arm-none-linux-gnu2eabi-

von Rolf Magnus (Gast)


Lesenswert?

Peter schrieb:
> wie kann ich den zu verwendenden Compiler im Makefile einstellen?

Das hängt vom Makefile ab. Normalerweise wird es durch die Variable $CC 
eingestellt.
Ach so. "folgenden" kenne ich allerdings nicht. ;-)

von Rolf Magnus (Gast)


Lesenswert?

Rolf Magnus schrieb:
> "folgenden" kenne ich allerdings nicht. ;-)

Ups... ich hatte dein Folgeposting zwar schon gesehen, aber die obige 
schon geschriebene Zeile versehentlich nicht gelöscht... also ignoriere 
sie einfach.

von Peter (Gast)


Angehängte Dateien:

Lesenswert?

Rolf Magnus schrieb:
> Das hängt vom Makefile ab. Normalerweise wird es durch die Variable $CC
> eingestellt.

Es geht um das Makefile der Coreutils (siehe Anhang). Muss ich also die 
Variable CC in Zeile 338 von  CC = gcc -std=gnu99  in CC = 
/codesourcery/bin/arm-none-linux-gnu2eabi- ändern?

von Rolf Magnus (Gast)


Lesenswert?

Das Makefile ist doch von einem configure-Skript generiert. Da sollte 
man eigentlich nicht manuell dran rumeditieren. Warum gibst du nicht 
gleich beim configure die Zielplattform an? Ich würde auch davon 
ausgehen, daß es bei weitem nicht reicht, den Compiler zu ersetzen.

Übrigens: Bist du sicher, daß dein Compiler "arm-none-linux-gnu2eabi-" 
heißt, ohne ein nachfolgendes "gcc"?

von Peter (Gast)


Lesenswert?

Rolf Magnus schrieb:
> Das Makefile ist doch von einem configure-Skript generiert.

Ja stimmt.

Übrigens: Bist du sicher, daß dein Compiler "arm-none-linux-gnu2eabi-"
heißt, ohne ein nachfolgendes "gcc"?

Das ist der Pfad zu toolchain.

Weiß vllt. jemand wie man die coreutils crosscompiled?

von Rolf Magnus (Gast)


Lesenswert?

Du must beim ./configure zusätzlich --host=arm-none-linux-gnu2eabi 
angeben. Das bin-Untervezeichnis von dem Verzeichnis, wo die Toolchain 
zu finden ist, muß im PATH eingetragen sein.

von Imon (Gast)


Lesenswert?

Rolf Magnus schrieb:
> Du must beim ./configure zusätzlich --host=arm-none-linux-gnu2eabi
> angeben. Das bin-Untervezeichnis von dem Verzeichnis, wo die Toolchain
> zu finden ist, muß im PATH eingetragen sein.

Ich bin mir nicht sicher ob der Originalposter wirklich ein configure 
hat, oder vielleicht einfach meint wie der das make file zu gestalten 
hat damit er cross kompilieren kann.
Wenn es darum geht ein makefile zu schreiben das auch cross Compileiren 
kann hat sich folgende Zeile bewerte.
1
CC = $(CROSS_COMPILE)gcc
2
3
%.o: %.c
4
    $(CC) -c $< -o $@

wenn du nun einfach nur make eingibst wird der host gcc genuzt.
um Cross zu Kompilieren wir das so gerufen

CROSS_COMPILE=/codesourcery/bin/arm-none-linux-gnu2eabi- make

von Rolf Magnus (Gast)


Lesenswert?

Imon schrieb:
> Ich bin mir nicht sicher ob der Originalposter wirklich ein configure
> hat, oder vielleicht einfach meint wie der das make file zu gestalten
> hat damit er cross kompilieren kann.

So wie ich es verstanden habe, will er die coreutils bauen, und die sind 
ein autoconf/automake-Projekt. Das kann man auch schon sehen, wenn man 
sich das von Peter angehängte Makefile anschaut.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.