2015-04-26 12 views
7

Sto provando a eseguire CLion su Windows 7 con MinGW ma per qualche motivo CMake puo ' t compilare il semplice programma di test ma quando creo un semplice file hello world viene compilato correttamente quando chiamo il compilatore direttamente anziché CMake.CLion: Errore: Il compilatore C "C: /MinGW/bin/gcc.exe" non è in grado di compilare un semplice programma di test

Ho già provato diverse versioni di MinGW ma non fa alcuna differenza sull'errore. Ho anche disinstallato il mio AV per vedere se quello era il problema, ma ancora una volta non è cambiato nulla.

Ho MinGW nel mio percorso e anche CMake. All'inizio ho pensato che forse era un problema con i permessi sulla cartella TEMP ma sembrano tutti a posto. Sono su un account amministratore pure.

Questo è l'errore che ottengo in Clion:

Error:The C compiler "C:/MinGW/bin/gcc.exe" is not able to compile a simple test program. 
It fails with the following output: 
Change Dir: C:/Users/Jim/.clion10/system/cmake/generated/4cb6a70c/4cb6a70c/__default__/CMakeFiles/CMakeTmp 
Run Build Command:"C:/MinGW/bin/mingw32-make.exe" "cmTryCompileExec141319549/fast" 
C:/MinGW/bin/mingw32-make.exe -f CMakeFiles\cmTryCompileExec141319549.dir\build.make CMakeFiles/cmTryCompileExec141319549.dir/build 
mingw32-make.exe[1]: Entering directory 'C:/Users/Jim/.clion10/system/cmake/generated/4cb6a70c/4cb6a70c/__default__/CMakeFiles/CMakeTmp' 
"C:\Program Files (x86)\JetBrains\CLion 1.0\bin\cmake\bin\cmake.exe" -E cmake_progress_report C:\Users\Jim\.clion10\system\cmake\generated\4cb6a70c\4cb6a70c\__default__\CMakeFiles\CMakeTmp\CMakeFiles 1 
CMakeFiles\cmTryCompileExec141319549.dir\build.make:56: recipe for target 'CMakeFiles/cmTryCompileExec141319549.dir/testCCompiler.c.obj' failed 
process_begin: CreateProcess(C:\Users\Jim\AppData\Local\Temp\make68804-1.bat, C:\Users\Jim\AppData\Local\Temp\make68804-1.bat, ...) failed. 
make (e=2): Het systeem kan het opgegeven bestand niet vinden. 
mingw32-make.exe[1]: *** [CMakeFiles/cmTryCompileExec141319549.dir/testCCompiler.c.obj] Error 2 
mingw32-make.exe[1]: Leaving directory 'C:/Users/Jim/.clion10/system/cmake/generated/4cb6a70c/4cb6a70c/__default__/CMakeFiles/CMakeTmp' 
Makefile:117: recipe for target 'cmTryCompileExec141319549/fast' failed 
mingw32-make.exe: *** [cmTryCompileExec141319549/fast] Error 2 
CMake will not be able to correctly generate this project. 

Questo è l'errore che ottengo quando provo ad usare CMake da CMD: enter image description here

+0

Ho provato quello che hai detto ma l'errore rimane lo stesso di prima. Questo è l'output dei log. http://pastebin.com/hMFFN5Gs –

+0

Ho disinstallato il mio antivirus, disattivato Windows Defender perché era acceso per qualche motivo, anche disabilitato il mio firewall. Ho già provato MinGW-w64 e anche uno di quelli TDM, ma tutti danno lo stesso errore. Ma comunque, ho provato di nuovo con MinGW-w64 e il più recente CMake. Questi sono i log che ricevo quando ho provato il tuo suggerimento: http://pastebin.com/wZZWx9Dy che sono praticamente gli stessi di prima. –

+0

Dice "File non trovato" ... Riesci a trovare un Makefile generato nella directory di costruzione? (Qualcosa in 'C:/Users/Jim/Documents/test/buidl/CMakeFiles/CMakeTmp') Se sì, per favore, postalo ... Il' buidl' è solo un mispelling, corretto? Ad ogni modo, il test del compilatore funziona, è il Make test che non lo fa. Prova il ninja. – Antonio

risposta

1

Con un progetto CMake fittizio (A CMakeLists.txt con semplicemente cmake_minimum_required(VERSION 2.8) e add_executable(helloWorld <your hello world program>).), abbiamo stabilito che compilatore e CLion non sono il problema, quindi probabilmente è qualcosa a che fare con make. Here era il registro.

La mia ipotesi è che tu abbia msys nel tuo percorso. Se sh.exe è nel tuo percorso, è known to cause problems.

Come alternativa sicura, è possibile decidere di utilizzare ninja in alternativa a make (cmake supports it experimentally, ma in pratica lo supporta piuttosto bene). Here puoi trovare pacchetti precompilati (infatti, è solo un eseguibile che devi inserire nel tuo percorso).

Integrazione ninja in CLion should work just fine.

+0

Giusto per qualificare questo: nessun file binario MSYS dovrebbe * mai * essere in '$ PATH', a meno che il tuo processo non sia eseguito da una shell MSYS correttamente istanziata, nel qual caso, suppongo, dovresti usare' MSYS Makefiles di CMake 'caratteristica; (supponendo, perché non ho mai trovato CMake utile a me, quindi non lo uso da solo). Se stai usando la funzione 'MinGW Makefiles', allora non dovrebbe essere' mingw32-make.exe' che si trova in '$ PATH'? –

+0

@KeithMarshall Se il tuo messaggio è per lui Bransen, dovresti postarlo sotto la sua domanda, altrimenti non ti verrà notificato lo – Antonio

+0

"dovresti postarlo sotto la sua domanda, altrimenti non sarà avvisato": non mi sono reso conto grazie. Questa è una caratteristica errata, IMO; tuttavia, ho pubblicato un commento sulla domanda, consigliandomi di rivedere i commenti sulle risposte. Solo per la cronaca, il mio commento precedente sarebbe pertinente per entrambi. –

0

Ho avuto un problema simile. Hai installato MinGW prima di CLion?

Se si è installato il compilatore C con MinGW (base), è possibile che CLion stia testando un compilatore C++ inesistente.

Si dovrebbe provare a installare il compilatore MinGW C++ dal proprio gestore di installazione. Oppure puoi semplicemente cancellare la cartella C: \ MinGW e riavviare il programma di installazione questa volta aggiungendo entrambi i compilatori C e C++. Se non funziona, prova a reinstallare CLion.

Questa è una soluzione rapida che ha funzionato per me.

Problemi correlati