2016-01-06 36 views
5

Non riesco a eseguire il codice C++. Ho scritto un programma base "Hello World" e lo ho compilato usando il comando g ++ make. Qui è il mio codice:Impossibile eseguire il file exe C++ compilato

#include <iostream> 

using namespace std; 

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

Sono su Windows 10, utilizzando Emacs per l'editing del codice, e CygWin per la compilazione. Ho salvato questo file come hello.cpp. Quindi ho navigato nella directory in CygWin. Quindi ho eseguito il comando make hello. Questo ha creato hello.exe. Quindi, ho tentato di eseguire il file utilizzando ./hello.exe. Ho anche provato ./hello che non ha funzionato. Quando digito uno di questi comandi e premo Invio, si trova solo sulla riga successiva, non facendo nulla. Posso digitare questa riga vuota, ma non farà nulla. Qualcuno sa come rendere il mio codice eseguito correttamente. Grazie.

EDIT: Ho provato a farlo in cpp.sh, un compilatore C++ online, e ha funzionato bene.

+0

Qual è l'output quando il programma viene eseguito sotto il prompt dei comandi di Windows (cmd.exe)? –

+0

@NoOrdinaryLove Lo stesso di CygWin. – kungfushark

+0

Prova a reindirizzare l'output su un file. hello.exe> ​​log.txt –

risposta

0

È probabile che il codice sia in esecuzione, ma non in uscita. Questo perché sta fallendo. Prova a controllare il valore restituito dopo che è stato eseguito con echo $?. Se non è 0 allora è andato in crash. Eseguilo anche in gdb e verifica se fallisce. Il motivo per cui non funziona è molto probabilmente uno scontro tra Windows e Cygwin: non è il tuo codice.

+0

Ho eseguito 'echo $?' Per controllare il restituisce il valore e dice '0', tuttavia, ogni volta che eseguo il programma, devo riavviare CygWin, quindi il valore potrebbe non essere accurato. Non so come eseguirlo in 'gdb', anche se l'ho installato. – kungfushark

+0

Ogni volta che si riavvia la shell, si perde il vecchio valore di '$?'. E sembra che anche la shell si blocca quando si esegue il programma. –

2

Probabilmente il tuo programma sta funzionando ma la finestra della console si sta chiudendo prima che tu possa vedere qualcosa.

Prova ad aggiungere un input alla fine del programma in modo che possa attendere.

I.E.

int a; 
cin >> a; 
+0

La finestra della console non si chiude. Rimane aperto, ma alla fine devo chiuderlo perché non emette nulla. – kungfushark

Problemi correlati