PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zum MINGW gcc Version 4.5.0



Hero_123
02.06.2012, 22:39
Ich habe da eine Frage zum MINGW:
ich habe das ganz simple "hello world" Programm in C geschrieben, und habe beim printf("Hello world - %d") (also auch die Ausgabe eines Wertes, aber OHNE Argument).
Ich kompiliere das c-file mit "gcc -ansi -Wall -pedantic -o hello hello.c" (will also alle Fehler/Warnungen angezeigt bekommen).

Wenn ich das File mit dem MINGW (gcc version 4.5.0, im DOS-Fenster, da ich WIN 7 benutze) kompliere, erhalte ich KEINE Fehlermeldung/Warnung.

Kompiliere ich das file unter cygwin (gcc-version 4.3.4 20090804 (release) 1 (GCC)), erhalte ich den Hinweis "Warnung: zu wenige Argumente für Format" (ist korrekt, da ja das Argument fehlt).

In beiden Fällen wird das file übersetzt, und es wird auch ein Wert angezeigt...

Stimmt da was beim MINGW gcc nicht oder was ist das?

Hero_123

SprinterSB
05.06.2012, 20:30
Also ich bekomme da mit 4.5.0 eine "warning: too few arguments for format", etwa bei -Wall oder -Wformat. Ist zwar kein nativer gcc, aber das spielt für solche Diagnostics keine Rolle.

Hero_123
06.06.2012, 19:58
Hallo SprinterSB

Genau diese Warnung hatte ich erwartet, aber da kommt nichts...wenn ich's unter Cygwin mache, kommt diese Warnung...versteh' ich ehrlich gesagt nicht; ich habs auch mit dem MINGW GCC Version 4.6.2 probiert - auch hier kam keine Warnung, wenn ich das im DOS-Fenster mache; Wenn Ich's unter UBUNTU mache, kommt auch die Warnung...

Was mich aber absolut verblüfft - wenn ich das mit Code::Blocks mache und den MINGW-Compiler verwende unter WIN7 (siehe screen-shot im zip-file), dann erhalte ich die Warnung...

naja...

Hero_123

GeoBot
07.06.2012, 11:33
Meine letzte Beschäftigung mit C ist zwar schon recht lange her.
Vielleicht helfen jedoch ein paar weitere Fragen weiter.

War printf nicht in stdio.h deklariert und in stdio.c definiert?
Hat sich mit der Compilerversion auch diese Library verändert?
Kann man dort nachschauen wie die Parameter?- Werte?- übergabe stattfindet?

GeoBot

Hero_123
07.06.2012, 18:13
Hallo GeoBot

Ja, stimmt, printf wird ind stdio.h deklariert.

Habe auch rum geg***elt, aber nichts gefunden. Naja, ich nehm's nun einfach hin, arbeite sowieso mit Code::Blocks, da tritt (zumindest) dieser Fehler nicht auf (ist zwar nur 'ne Warnung, aber man weiß ja nicht, was sonst noch ist...)

Hero_123