Printf() funktioniert nicht in Codeblocks?
Ich habe heute Code::Blocks per mingw-setup auf meinem neuen Laptop installiert. Danach wollte ich die Installation mit einem HelloWorld-Programm testen. Das Programm lässt sich compilieren und ausführen jedoch erhalte ich im Konsolenfenster keine Ausgabe der printf() Anweisung. Ich verstehe nicht warum sich Code::Blocks so verhält und wie ich dies beheben kann. Danke schon mal im Vorraus.
4 Antworten
Du bekommst auch einen ganz anderen return-Wert.
Demnach wird wohl ein anderes Programm ausgeführt, nichtd eines.
versuch es mal mit der "Build and Run"-Funktion direkt in CodeBlocks, da sollte es funktionieren.
Andernfalls kannst du versuchen,d er return-Wert auszuwerten.
Eien andere Ursaech ist hier geschildert, trifft vermutlich eher zu:
https://stackoverflow.com/questions/57562411/cant-build-c-project
Auf dieser Seite wird nur erklärt das er die falsche Syntax benutzt aber mein Code ist ja ordnungsgemäß
Ja, das stimmt, habe ich wegen Zeitdrucks nicht gleich bgesehen, sorry.
Dann liegt das Problem woanders.
Hast du schonmal versucht, in die Klammer ein "void" zu schreiben oder deinen Virenscanner zu deaktivieren?
Kann an den Compiler settings liegen.
Kannst du mal einen Screenshot von den entsprechenden Settings machen??
Wenn ich auf new flag gehe kann ich dort eine neue flag eintragen mit Name, Compiler flags, Linker FLags,...
Hm.....Ich hatte eher das hier erwartet, aber bin wirklich kein codeblocks Experte ;)
Kein Problem, bin trotzdem dankbar für ihre Mühe
Könnte damit zusammenhängen, dass du auf einem Windows-System unterwegs bist.
Versuchs mal damit:
#include <stdio.h>
int main(int argc, char *argv[]){
printf("Hello World.\r\n");
}
Ich habe den Code versucht und erhalte leider dasselbe Ergebnis.
Du betrachtest eine Datei main.c, führst aber offenbar ein anderes Programm test6.exe aus.
"test6" heißt das Projekt in dem sich die main.c Datei befindet und diese ist auch die einzige .c-Datei in diesem Projekt.
Mag ja sein, aber diese Datei gehört offenbar nicht zum Projekt: Der Build meldet "Nothing to be done", und das gestartete Programm test6.exe gibt kein "Hello World" aus, läuft über 5 Sekunden lang und liefert nicht 0 zurück.
Du kannst in Deine main.c wahrscheinlich eintippen, was Du willst. Es macht keinen Unterschied.
- Entweder hast Du Dich im Pfad vertan,
- oder Du musst main.c explizit dem Projekt hinzufügen,
- oder test6 ist nicht als Standard-C-Konsolen-Anwendung konfiguriert.
- oder ...
Das Problem tritt bei allen Projekten auf die ich erstelle. Habe auch schon Codeblocks neu installiert aber es hat nichts geholfen.
Lösche mal die test6.exe und starte das Programm neu. In der IDE-Console sollte dann statt "Nothing to be done" die Liste der Befehle stehen, mit denen test6.exe gebaut wird.
Kopiere diesen Text und zeige ihn hier -- aber bitte als Code formatiert (Button </>)
Interessant. Ich finde die entsprechende exe Datei gar nicht im vorgesehenen Verzeichnis.
Build Log:
-------------- Build: Debug in Test 9 (compiler: GNU GCC Compiler)---------------
mingw32-gcc.exe -Wall -g -c "C:\Users\raffi\Documents\C-Projekte\Test 9\main.c" -o obj\Debug\main.o
mingw32-g++.exe -o "bin\Debug\Test 9.exe" obj\Debug\main.o
Output file is bin\Debug\Test 9.exe with size 41.95 KB
Process terminated with status 0 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
-------------- Run: Debug in Test 9 (compiler: GNU GCC Compiler)---------------
Checking for existence: C:\Users\raffi\Documents\C-Projekte\Test 9\bin\Debug\Test 9.exe
Executing: "C:\Program Files (x86)\CodeBlocks/cb_console_runner.exe" "C:\Users\raffi\Documents\C-Projekte\Test 9\bin\Debug\Test 9.exe" (in C:\Users\raffi\Documents\C-Projekte\Test 9\.)
Process terminated with status 4258096 (0 minute(s), 2 second(s))
Wie ich sehe, wird main,c erfolgreich zu "Test 9.exe" kompiliert. Dann startet cb_console_runner.exe, das vermutlich Deine "Test 9.exe" starten soll und danach die Laufzeit und den Exit-Code ausgibt und auf einen Testendruck wartet.
So gesehen hast Du also nichts falsch gemacht -- außer bei der Wahl des Betriebssystems :-P
Mach mal 'ne Dos-Box auf und gib
C:\Users\raffi\Documents\C-Projekte\Test 9\bin\Debug\Test 9.exe"
ein (in einer Zeile, mit den Anführungszeichen). Das wird vermutlich funktionieren, oder meckert da etwa ein Virenscanner?
Nun gib mal den ganzen Befehl ein:
"C:\Program Files (x86)\CodeBlocks/cb_console_runner.exe" "C:\Users\raffi\Documents\C-Projekte\Test 9\bin\Debug\Test 9.exe"
Was geht dabei schief? Fehlt das Programm, ist es beschädigt, oder hast Du nicht die Rechte, es auszuführen?
Woher bekomme ich eine entsprechende Dos-Box?
Die ist bei Windows dabei. Aber wie man sie startet, hängt von der Windows-Version ab. Ich kann Dir da kaum helfen, weil ich vor 20 Jahren die Schnauze voll hatte und auf Linux umgestiegen bin.
Probier mal:
- Win-R (für Run...), dann cmd eingeben
- oder Start/Programme/Verwaltung/Eingabeaufforderung
- oder Cortana fragen
Achso Sie meinen die Eingabeaufforderung. Die Dateien können nicht gefunden werden
"die Dateien"? Fehlen wirklich beide Programme?
Bei Deiner "Test 9.exe" könnte ich mir vorstellen, dass sie von einem Virenscanner in Quarantäne verschoben wurde. Seltsam nur, weil die IDE ja vor dem Starten extra noch geprüft hat, ob "Test 9.exe" existiert.
Wenn die cb_console_runner.exe fehlt, sind C-Konsole-Anwendungen wohl nicht in der Standardinstallation enthalten. Dann musst Du wohl ein extra Paket nachinstallieren. Seltsam nur, dass Du dann überhaupt ein solches Projekt anlegen kannst.
Schau mal nach, ob die Dateien wirklich weg sind:
dir "C:\Program Files (x86)\CodeBlocks/*.exe"
dir "C:\Users\raffi\Documents\C-Projekte\Test 9\bin\Debug"
Vielleicht sind ja beide da, hängen aber von einer fehlenden DLL ab und können deshalb nicht gestartet werden. Hast Du Dir etwa mit einem anderen Programm eine kaputte msvcrtd.dll eingefangen?
(Der Name steht für MicroSoft-Virtual-C-RunTime-Debug , Dynamic-Link-Library.; sie enthält alle C-Funktionen wie printf(), assert(), sqrt() usw.)
DLL-Abhängigkeiten findest Du z.B. mit depends.exe heraus.
Nachtrag: Falls Du nach einer msvcrtd.dll suchen willst: Da steckt irgendwo noch eine Versionsnummer drin. Sie heißt also msvctr80d.dll oder so ähnlich.
Der Virenscanner war genau die richtige Vermutung. Nachdem ich mein Virenschutzprogramm deinstalliert habe hat alles problemlos funktioniert und es wurde eine .exe-Datei im Projektordner angelegt. Ich denk das genau das das Problem war, das der Virenscanner die .exe-Datei in Quarantäne verschoben hat. Danke vielmals für Ihre Hilfe!
Ich habe es immer mit Build and Run ausgeführt und eigentlich sollte das entsprechende Programm ausgeführt werden.