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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.