mikrocontroller.net

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


Autor: alix-r (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls es wirklich an der Groß-Kleinschreibung liegt hülft die gcc-Option
 -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.

Autor: alix-r (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.