Forum: Compiler & IDEs stdio unter MinGW


von Butterberger (Gast)


Lesenswert?

Hallo,

noch ein C-Neulingsproblem:

1
make all 
2
'Building file: ../src/tpmd/tpmd.c'
3
'Invoking: ARM Linux gcc compiler'
4
arm-xilinx-linux-gnueabi-gcc -Wall -O0 -g3 -I"C:\MinGW\include" -c -fmessage-length=0 -MMD -MP -MF"src/tpmd/tpmd.d" -MT"src/tpmd/tpmd.d" -o "src/tpmd/tpmd.o" "../src/tpmd/tpmd.c"

Es scheint Probleme mit minGW stdio zu geben:
1
In file included from ../src/tpmd/tpmd.c:17:0:
2
C:\MinGW\include/stdio.h:165:39: error: expected ',' or ';' before 'fopen'
3
C:\MinGW\include/stdio.h:166:39: error: expected ',' or ';' before 'freopen'
4
C:\MinGW\include/stdio.h:167:13: error: conflicting types for '__cdecl'
5
C:\MinGW\include/stdio.h:166:15: note: previous declaration of '__cdecl' was here
6
C:\MinGW\include/stdio.h:167:37: error: expected ',' or ';' before 'fflush'
7
C:\MinGW\include/stdio.h:168:13: error: conflicting types for '__cdecl'
8
C:\MinGW\include/stdio.h:166:15: note: previous declaration of '__cdecl' was here

Und so wiederholen sich ähnliche Fehlermeldungen mehrere hundert mal.

Welchen Tipp habt ihr für einen Anfänger, was soll ich prüfen?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Bahnhof?

MinGW ist ein (ggf. Cross-)Compiler für Win32 bzw. Win64 API.

arm-xilinx-linux-gnueabi-gcc ist ein Compiler für ein ARM-Target.

Warum zum Geier[tm] willst du einem ARM-Compiler Headerfiles aus dem
Win32-API unterschieben?

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Wozu ist denn das -I gut? Damit verwendest du Includes des Host-Systems 
(mingw32) für dein Target (arm-xilinx-linux-gnueabi).

Die Toolchain weiß schon, wo sie ihre Includes herbekommt, und zwar 
besser als du. Also laß das -I weg!

von Butterberger (Gast)


Lesenswert?

hmm, ich hatte ja in einem anderen Artikel das Problem, daß der ARM 
Compiler die gmp.h nicht kannte; deshalb habe ich auf -I 
"C:\MinGW\include" gezeigt, wo eine gmp.h drin ist.
Aber mir schwant, das war wohl nicht der eleganteste, oder überhaupt 
richtige Weg.

Johann L. schrieb:
> Die Toolchain weiß schon, wo sie ihre Includes herbekommt, und zwar
> besser als du. Also laß das -I weg!

Aber wie kriege ich dann die gmp.h in die Toolchain?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Butterberger schrieb:
> Aber wie kriege ich dann die gmp.h in die Toolchain?

Das wurde dir doch in diesem Thread geschrieben!

Du musst dir eine für das Target compilierte Version dieser
Bibliothek irgendwo hinlegen.  Diese bringt dann auch ihr dazu
passendes gmp.h mit, auf auf dieses Verzeichnis lässt du eine
-I-Option zeigen.

Du kannst dir nicht einfach irgendwas zusammenschustern und dann
hoffen, dass das funktioniert.  Selbst, falls es compilieren sollte,
ist das Ergebnis Unfug und hat keine Chancen, auf deinem Target zu
laufen.

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.