Forum: Compiler & IDEs Komischer Aufruf von g++ anstelle vom arm-elf-gcc


von alix-r (Gast)


Lesenswert?

Hallo.

Ich habe ein merkwürdiges Problem mit GNUARM, das ich mir nicht erklären 
kann.

Ich kann ohne Problem auf meinem Desktop ein Projekt mit GNUARM 
compilieren.
Auf einem zweiten PC (Notebook) kann ich aber exakt das gleich Projekt 
nicht erfolgreich compilieren. (es ist alles gleich GNUARM, make, .c, .h 
Pfade und sonstiges)

Aus mir nicht bekannten Gründen werden einige (nicht alle) Komponenten
nicht mit arm-elf-gcc compiliert, sondern es wird versucht mit g++ zu 
compilieren. Als Ergebnis passt das entsprechende Object File nicht zum 
Rest.

z.B. (Ausschnitt aus make):

.....
#Object file
Objects = CStartup.o iap.o interrupt_utils.o HSPIMMC.o adf4106.o 
DS1721.o MAX1239.o \
          max5288.o PCF857x.o RTC.o Socket_2138.o ST24C02.o
....


ok auf PC1:
----------------------------------------------------------------------
...
arm-elf-gcc -v  -g -W -I./ -c -O0 -mcpu=arm7tdmi-s   -c -o MAX1239.o 
MAX1239.c
Using built-in specs.
...
 /cygdrive/c/programme/gnuarm/bin/../lib/gcc/arm-elf/4.2.0/../../../../ar 
m-elf/bin/as.exe  -mcpu=arm7tdmi-s -mfloat-abi=soft -o MAX1239.o 
/cygdrive/c/DOKUME~1/user1/LOKALE~1/Temp/ccMwYlxy.s
arm-elf-gcc -v  -g -W -I./ -c -O0 -mcpu=arm7tdmi-s   -c -o max5288.o 
max5288.c
Using built-in specs.
...

---------------------------------------------------------------------
nicht ok auf PC2:
---------------------------------------------------------------------
...
g++    -c -o MAX1239.o MAX1239.C
arm-elf-gcc -v  -g -W -I./ -c -O0 -mcpu=arm7tdmi-s   -c -o max5288.o 
max5288.c
Using built-in specs.
....
---------------------------------------------------------------------
Wie gesagt meiner Ansicht nach ist alles gleich auf beiden PCs.

Bei diesen objects ist der Aufruf falsch
   MAX1239.o
   PCF857x.o
   ST24C02.o
Bei allen andern ist er korrekt.

Hat jemand eine Idee dazu ?

Vielen Dank

von (prx) A. K. (prx)


Lesenswert?

Gross ".C" = C++. Unix/Linux-Filesysteme machen da einen Unterschied, 
deren Tools folglich auch. Klassisches DOS-FAT hingegen kennt nur 
Grossschreibung. Sollte man bei Dateitransport drauf achten, dass aus 
klein .c kein gross .C wird.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Falls es wirklich an der Groß-Kleinschreibung liegt hülft die gcc-Option
1
 -x c <datei>

die <datei> als C-Datei interpretiert, unabhängig von der Extension.

Evtl. ist auch das Makefile der Bösewicht, weil es für .C explizit g++ 
als Standard aufruft.

von alix-r (Gast)


Lesenswert?

Hallo A.K. und Johann L.

Vielen Dank für die schnelle Hilfe.

Volltreffer!

Bei allen 3 Dateien war tatsächlich die Extention .c groß geschrieben.
Ich wusste zwar, dass man mit der Groß/Kleinschreibung aufpassen muss, 
aber
das hatte ich übersehen. Warum bei einem PC es groß und beim zweiten 
klein
geschreiben wurde kann ich mir nicht erklären. Aber egel, es geht jetzt.

Danke nochmals für die Hilfe.

Gruss alix-r

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.