2016-01-06 15 views
5

Ich habe Probleme beim Ausführen meines C++ - Codes. Ich habe ein grundlegendes Programm "Hello World" geschrieben und es mit dem Befehl g ++ make kompiliert. Hier ist mein Code:Kann kompilierte C++ exe-Datei nicht ausführen

#include <iostream> 

using namespace std; 

int main() { 
    cout << "Hello World" << endl; 
    return 0; 
} 

Ich bin auf Windows 10, Emacs für Code-Bearbeitung und CygWin für die Kompilierung. Ich habe diese Datei als hello.cpp gespeichert. Ich navigierte dann zu dem Verzeichnis in CygWin. Dann habe ich den Befehl make hello. Dies erstellt hallo.exe. Dann habe ich versucht, die Datei mit ./hello.exe auszuführen. Ich habe auch versucht ./hello, die auch nicht funktioniert. Wenn ich einen dieser Befehle eintippe und Enter drücke, dann nur in der nächsten Zeile, nichts tun. Ich kann diese leere Zeile eingeben, aber es wird nichts tun. Kennt jemand einen Weg, um meinen Code korrekt auszuführen? Vielen Dank.

EDIT: Ich habe versucht, dies bei cpp.sh, einem Online-C++ - Compiler, und es hat gut funktioniert.

+0

Was ist die Ausgabe, wenn das Programm unter Windows-Eingabeaufforderung (cmd.exe) ausgeführt wird? –

+0

@NoOrdinaryLove Das gleiche wie bei CygWin. – kungfushark

+0

Versuchen Sie, die Ausgabe in eine Datei umzuleiten. hallo.exe> ​​log.txt –

Antwort

0

Ihr Code wird höchstwahrscheinlich ausgeführt, aber nichts ausgegeben. Das liegt daran, dass es scheitert. Versuchen Sie, den Rückgabewert zu überprüfen, nachdem er mit echo $? ausgeführt wurde. Wenn es nicht 0 ist, ist es abgestürzt. Führen Sie es auch in gdb und sehen, ob es fehlschlägt. Der Grund, warum es scheitert, ist höchstwahrscheinlich ein Windows/Cygwin-Konflikt - es ist nicht Ihr Code.

+0

Ich habe 'echo $?' Ausgeführt, um das zu überprüfen Rückgabewert und es sagte "0", aber jedes Mal, wenn ich das Programm starte, muss ich CygWin neu starten, daher ist der Wert möglicherweise nicht genau. Ich weiß nicht, wie ich es in 'gdb' ausführen soll, obwohl ich es installiert habe. – kungfushark

+0

Jedes Mal, wenn Sie die Shell neu starten, verlieren Sie Ihren alten Wert von '$?'. Und es hört sich an, als würde sogar die Shell abstürzen, wenn Sie Ihr Programm starten. –

2

Ihr Programm funktioniert wahrscheinlich, aber das Konsolenfenster wird geschlossen, bevor Sie etwas sehen können.

Versuchen Sie eine Eingabe am Ende des Programms hinzuzufügen, so dass es warten wird.

I.E.

int a; 
cin >> a; 
+0

Das Konsolenfenster wird nicht geschlossen. Es bleibt offen, aber irgendwann muss ich es schließen, weil es nichts ausgibt. – kungfushark

Verwandte Themen