2015-09-26 11 views
49

Sto cercando fare una soluzione Visual Studio con cmake per compilare la versione più recente del aseprite e CMake continua a darmi il:CMake Errore al CMakeLists.txt: 30 (progetto): No CMAKE_C_COMPILER potrebbe essere trovato

No CMAKE_C_COMPILER could be found. 
No CMAKE_CXX_COMPILER could be found. 

ho già scaricato gcc e sto usando visual Studio 2015.

sto seguendo questo tutorial/

https://github.com/aseprite/aseprite/blob/master/INSTALL.md

Ho cercato circa 3 ore e nessuna soluzione su internet montata.

+0

È possibile configurare il progetto per Visual Studio con il relativo compilatore o per Makefile con gcc. Quale metodo hai provato? – Tsyvarev

+0

Qual è il comando cmake che stai inserendo? – bames53

+0

Stai usando l'ultimo CMake? Che generatore hai usato? Hai eseguito i comandi dal prompt dei comandi di Visual Studio 2015 (così ha impostato le variabili di ambiente del compilatore)? – drescherjm

risposta

62

quei messaggi di errore

CMake Error at ... (project): 
    No CMAKE_C_COMPILER could be found. 
-- Configuring incomplete, errors occurred! 
See also ".../CMakeFiles/CMakeOutput.log". 
See also ".../CMakeFiles/CMakeError.log". 

o

CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found. 
Please set CMAKE_CXX_COMPILER to a valid compiler path or name. 
... 
-- Configuring incomplete, errors occurred! 

solo dire che CMake è stato in grado di trovare il vostro C/CXX compilatore per compilare un semplice programma di test (una delle prime cose che CMake prova mentre rilevamento del tuo ambiente di costruzione).

I passaggi per individuare il problema dipendono dall'ambiente di generazione che si desidera generare. Le seguenti esercitazioni sono una raccolta di risposte qui su StackOverflow e alcune delle mie esperienze personali con CMake su MS Windows 7/8/10 e Ubuntu 14.04.

Presupposti

  • È stato installato il compilatore/IDE ed è stato in grado di compilare una volta qualsiasi altro programma (direttamente senza CMake)
  • di avere l'ultima CMake version
  • Hai diritti di accesso sul disco che si desidera CMake per generare l'ambiente di generazione
  • Si dispone di una directory di compilazione pulita (poiché CMake memorizza nella cache le cose dall'ultimo tentativo) ad esempio come sotto-directory del vostro albero dei sorgenti

    di Windows cmd.exe

    > rmdir /s /q VS2015 
    > mkdir VS2015 
    > cd VS2015 
    

    shell Bash

    $ rm -rf MSYS 
    $ mkdir MSYS 
    $ cd MSYS 
    

    e assicurarsi che i punti di shell di comando nella directory di output binario appena creata .

cose generali si può/dovrebbe provare

  1. è trovare in grado CMake e correre con qualsiasi/il compilatore di default?Eseguire senza dare un generatore

    > cmake .. 
    -- Building for: Visual Studio 14 2015 
    ... 
    

    perfetto se correttamente determinato il generatore di utilizzare - come qui Visual Studio 14 2015

  2. Che cosa è stato che in realtà non è riuscita?

    Nella directory di generazione build precedente, consultare CMakeFiles\CMakeError.log per qualsiasi messaggio di errore che abbia senso per voi o provare ad aprire/compilare il progetto di test generato a CMakeFiles\[Version]\CompilerIdC | CompilerIdCXX direttamente dalla riga di comando (come si trova nel log degli errori).

CMake non riesce a trovare Visual Studio

  1. provare a selezionare il corretto generator version

    > cmake --help 
    > cmake -G "Visual Studio 14 2015" .. 
    
  2. Se questo non aiuta tenta di impostare le variabili d'ambiente VS primo (il percorso potrebbe variare)

    > "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" 
    > cmake .. 
    

    o utilizzare la scorciatoia Developer Command Prompt for VS2015 nel menu di avvio di Windows sotto All Programs/Visual Studio 2015/Visual Studio Tools (grazie al @Antwane per il suggerimento)

Sfondo: CMake supporta tutti Studio rilasci e sapori visivi (Express, Community, Professional, Premium, Test, Team, Enterprise, Ultimate, ...). Per determinare la posizione del compilatore, utilizza una combinazione di ricerca nel registro (ad esempio a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\[Version];InstallDir), variabili di ambiente di sistema e, se nessuno degli altri ha trovato qualcosa, prova chiaramente a chiamare il compilatore.

CMake non riesce a trovare GCC (MinGW/MSys)

  1. si avvia la shell MSys bash con msys.bat e cercano solo di chiamare direttamente gcc

    $ gcc 
    gcc.exe: fatal error: no input files 
    compilation terminated. 
    

    Qui ha trovato gcc e si lamenta che non ho dato alcun parametro con cui lavorare.

    Così il seguente dovrebbe funzionare:

    $ cmake -G "MSYS Makefiles" .. 
    -- The CXX compiler identification is GNU 4.8.1   
    ... 
    $ make 
    

    Se GCC non è stato trovato chiamata export PATH=... aggiungere la percorso compilatori (vedi How to set PATH environment variable in CMake script?) e riprovare.

  2. Se ancora non funziona, provare a impostare il percorso CXX compilatore direttamente esportandolo (percorso può variare)

    $ export CC=/c/MinGW/bin/gcc.exe 
    $ export CXX=/c/MinGW/bin/g++.exe 
    $ cmake -G "MinGW Makefiles" .. 
    -- The CXX compiler identification is GNU 4.8.1   
    ... 
    $ mingw32-make 
    

    Per maggiori dettagli vedi how to specify new gcc path for cmake

    Nota: Quando si utilizza il Generatore "MinGW Makefiles" devi utilizzare il programma mingw32-make distribuito con MinGW

  3. Ancora non funziona? Quello è strano. Assicurati che il compilatore sia presente e disponga dei diritti eseguibili (vedi anche il capitolo precedente sulle precondizioni).

    In caso contrario, l'ultima risorsa di CMake è di non provare qualsiasi ricerca compilatore stesso e impostare le variabili interne di CMake direttamente

    $ cmake -DCMAKE_C_COMPILER=/c/MinGW/bin/gcc.exe -DCMAKE_CXX_COMPILER=/c/MinGW/bin/g++.exe .. 
    

    Per ulteriori dettagli vedere Cmake doesn't honour -D CMAKE_CXX_COMPILER=g++ e Cmake error setting compiler

    In alternativa tali variabili possono anche essere impostati via cmake-gui.exe su Windows. Vedere Cmake cannot find compiler

Sfondo: Più o meno lo stesso con Visual Studio. CMake supporta tutti i tipi di sapori GCC. Cerca le variabili di ambiente (CC, CXX, ...) o cerca semplicemente di chiamare il compilatore. Inoltre rileverà eventuali prefissi (quando cross-compiling) e cerca di aggiungerlo a tutte le binutils toolchain del compilatore GNU (ar, ranlib, strip, ld, nm, objdump, objcopy).

3

Ho avuto gli stessi errori con CMake. Nel mio caso, ho usato la versione di Visual Studio sbagliata nella finestra di dialogo iniziale di CMake in cui dobbiamo selezionare il compilatore di Visual Studio. Poi l'ho cambiato come "Visual Studio 11 2012" e le cose funzionano. (Ho la versione di Visual Studio Ultimate 2012 nel mio pc). In generale, prova a dare una versione precedente della versione di Visual Studio nella finestra di configurazione iniziale di CMake.

4

Ho riscontrato questo problema durante la creazione di libgit2-0.23.4. Per me il problema era che i pacchetti relativi al compilatore C++ & non erano installati con VS2015, quindi "C: \ Programmi (x86) \ Microsoft Visual Studio 14.0 \ VC \ vcvarsall.bat" file mancava e Cmake non era in grado per trovare il compilatore.

Ho cercato di creare manualmente un progetto C++ in Visual Studio 2015 GUI (C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ devenv.exe) e durante la creazione del progetto, ho ricevuto un prompt per scaricare i pacchetti relativi a C++ &.

Dopo aver scaricato i pacchetti richiesti, ho potuto vedere vcvarsall.bat & cmake è stato in grado di trovare il compilatore & eseguito con successo con i seguenti log:

C:\Users\aksmahaj\Documents\MyLab\fritzing\libgit2\build64>cmake .. 
-- Building for: Visual Studio 14 2015 
-- The C compiler identification is MSVC 19.0.24210.0 
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual   
Studio 14.0/VC/bin/cl.exe 
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual 
Studio 14.0/VC/bin/cl.exe -- works 
-- Detecting C compiler ABI info 
-- Detecting C compiler ABI info - done 
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) 
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) 
-- zlib was not found; using bundled 3rd-party sources. 
-- LIBSSH2 not found. Set CMAKE_PREFIX_PATH if it is installed outside of 
the default search path. 
-- Looking for futimens 
-- Looking for futimens - not found 
-- Looking for qsort_r 
-- Looking for qsort_r - not found 
-- Looking for qsort_s 
-- Looking for qsort_s - found 
-- Looking for clock_gettime in rt 
-- Looking for clock_gettime in rt - not found 
-- Found PythonInterp: C:/csvn/Python25/python.exe (found version "2.7.1") 
-- Configuring done 
-- Generating done 
-- Build files have been written to:  
C:/Users/aksmahaj/Documents/MyLab/fritzing/libgit2/build64 
+1

Questo ha funzionato per me. La creazione manuale di un progetto C++ per installare i pacchetti necessari ha funzionato. – Melaz

9

ho anche sperimentato questo errore quando si lavora con cmake

No CMAKE_C_COMPILER could be found. 
No CMAKE_CXX_COMPILER could be found. 

La casella 'avvertimento' in questo articolo MSDN Library https://msdn.microsoft.com/en-us/library/60k1461a.aspx mi ha dato l'aiuto di cui avevo bisogno.

Visual Studio 2015 non viene fornito con C++ installato per impostazione predefinita. Quindi, la creazione di un nuovo progetto C++ ti chiederà di scaricare i componenti C++ necessari.

2

Assicurarsi di aver selezionato la versione corretta di Visual Studio. Questo è più complicato di quanto sembra perché Visual Studio 2015 è in realtà Visual Studio 14, e in modo simile Visual Studio 2012 è Visual Studio 11. Avevo selezionato in modo errato Visual Studio 15, che in realtà è Visual Studio 2017, quando ho installato 2015.

0

ho aggiornato Visual Studio 2015 aggiornamento 2 di Visual Studio 2015 Update 3 e risolto il mio problema.

1

per Ubuntu Bisogna installare sotto le cose:

sudo apt-get update & & sudo apt-get install build-essential

3

Questo successo a me dopo aver installato Visual Studio 15 2017.

Il compilatore C++ per Visual Studio 14 2015 non era il problema. Sembrava essere un problema con il sdk di Windows 10.

L'aggiunta di Windows10 sdk a Visual Studio 14 2015 ha risolto il problema per me.

Vedere lo screenshot allegato.

enter image description here

0

ho avuto lo stesso problema con CMake-gui (No CMAKE_CXX_COMPILER could be found.), durante l'esecuzione di cmake dalla riga di comando ha funzionato bene. Dopo aver aggiunto manualmente le voci

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin

ha funzionato per me.