it-swarm-es.tech

Error de CMake en CMakeLists.txt: 30 (proyecto): No se pudo encontrar CMAKE_C_COMPILER

Estoy intentando hacer una solución de Visual Studio con CMake para compilar la última versión de aseprite y CMake sigue dándome lo siguiente:

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

Ya descargué GCC y estoy usando Visual Studio 2015 .

Estoy siguiendo este tutorial:

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

75
Caio Fontes

Esos mensajes de error

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 significa que CMake no pudo encontrar su compilador C/CXX para compilar un programa de prueba simple (una de las primeras cosas que CMake intenta al detectar su entorno de compilación).

Los pasos para encontrar su problema dependen del entorno de compilación que desee generar. Los siguientes tutoriales son una recopilación de respuestas aquí en Stack Overflow y algunas de mis propias experiencias con CMake en Microsoft Windows 7/8/10 y Ubuntu 14.04.

Condiciones previas

  • Ha instalado el compilador/IDE y pudo compilar una vez cualquier otro programa (directamente sin CMake)
  • Tienes la última versión CMake
  • Tiene derechos de acceso en la unidad que desea que CMake genere su entorno de compilación
  • Tienes un directorio de compilación limpio (porque CMake almacena en caché las cosas desde el último intento), por ejemplo. como subdirectorio de su árbol fuente

    Windows cmd.exe

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

    Bash Shell

    $ rm -rf MSYS
    $ mkdir MSYS
    $ cd MSYS
    

    y asegúrese de que su comando Shell apunte a su directorio de salida binario recién creado.

Cosas generales que puedes/deberías probar

  1. ¿Es CMake capaz de encontrar y ejecutar cualquier compilador predeterminado? Corre sin dar un generador.

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

    Perfecto si determinó correctamente el generador a usar, como aquí Visual Studio 14 2015

  2. ¿Qué fue lo que realmente falló?

    En el directorio de salida de compilación anterior, busque CMakeFiles\CMakeError.log para ver si hay algún mensaje de error que tenga sentido para usted o intente abrir/compilar el proyecto de prueba generado en CMakeFiles\[Version]\CompilerIdC | CompilerIdCXX directamente desde la línea de comandos (como se encuentra en el registro de errores).

CMake no puede encontrar Visual Studio

  1. Intente seleccionar la versión correcta del generador :

    > cmake --help
    > cmake -G "Visual Studio 14 2015" ..
    
  2. Si eso no ayuda, intente establecer primero las variables de entorno de Visual Studio (la ruta podría variar):

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

    o use el atajo Developer Command Prompt for VS2015 en su Menú de Inicio de Windows bajo All Programs/Visual Studio 2015/Visual Studio Tools (gracias a @Antwane por la sugerencia).

Fondo: CMake es compatible con todas las versiones y versiones de Visual Studio (Express, Community, Professional, Premium, Test, Team, Enterprise, Ultimate, etc.). Para determinar la ubicación del compilador, utiliza una combinación de búsqueda en el registro (por ejemplo, en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\[Version];InstallDir), las variables de entorno del sistema y, si ninguno de los otros encontró algo, simplemente intenta llamar al compilador.

CMake no puede encontrar GCC (MinGW/MSys)

  1. Inicia el MSys bash Shell con msys.bat e intente llamar directamente gcc

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

    Aquí encontró gcc y se queja de que no le di ningún parámetro para trabajar.

    Así que lo siguiente debería funcionar:

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

    Si no se encontró GCC, llame a export PATH=... para agregar la ruta de los compiladores (consulte ¿Cómo configurar la variable de entorno PATH en el script de CMake?) e intente nuevamente.

  2. Si aún no funciona, intente establecer la ruta del compilador CXX directamente exportándola (la ruta puede variar)

    $ 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
    

    Para más detalles, vea Cómo especificar una nueva ruta GCC para CMake

    Nota : Al usar el generador "MinGW Makefiles", debe usar el programa mingw32-make distribuido con MinGW

  3. ¿Sigue sin funcionar? Eso es raro. Asegúrese de que el compilador esté allí y que tenga derechos de ejecución (consulte también el capítulo de condiciones previas más arriba).

    De lo contrario, el último recurso de CMake es no intentar ninguna búsqueda del compilador y establecer las variables internas de CMake directamente mediante

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

    Para obtener más detalles, consulte Cmake no cumple con -D CMAKE_CXX_COMPILER = g ++ y Cmake error settings setting

    Alternativamente, esas variables también se pueden configurar a través de cmake-gui.exe en Windows. Ver Cmake no puede encontrar el compilador

Fondo: Es lo mismo que con Visual Studio. CMake soporta todo tipo de sabores GCC. Busca las variables de entorno (CC, CXX, etc.) o simplemente intenta llamar al compilador. Además, detectará cualquier prefijo (cuando compilación cruzada ) e intentará agregarlo a todos los binutils del GNU compilador toolchain (ar, ranlib, strip, ld, nm, objdump, and objcopy).

74
Florian

Esto me sucedió después de instalar Visual Studio 15 2017.

El compilador de C++ para Visual Studio 14 2015 no fue el problema. Parecía ser un problema con el SDK de Windows 10.

Agregar los SDK de Windows 10 a Visual Studio 14 2015 me solucionó el problema.

Ver captura de pantalla adjunta.

 Enter image description here

13
Wim Vanhenden

También experimenté este error al trabajar con CMake:

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

El cuadro de "advertencia" en el artículo de la biblioteca de MSDNVisual C++ en Visual Studio 2015me dio la ayuda que necesitaba.

Visual Studio 2015 no viene con C++ instalado de forma predeterminada. Por lo tanto, al crear un nuevo proyecto de C++, se le pedirá que descargue los componentes necesarios de C++.

12
Natalie Cottrill

Para Ubuntu, por favor instale las siguientes cosas:

Sudo apt-get update && Sudo apt-get install build-essential
8
Vishnu

Me encontré con este problema mientras construía libgit2-0.23.4. Para mí, el problema fue que el compilador de C++ y los paquetes relacionados no se instalaron con VS2015, por lo tanto "C:\Archivos de programa (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" el archivo no estaba y el archivo no estaba t capaz de encontrar el compilador.

Intenté crear manualmente un proyecto de C++ en la GUI de Visual Studio 2015 ( C:\Archivos de programa (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe ) y al crear el proyecto, recibí una solicitud para descargar los paquetes de C++ y relacionados.

Después de descargar los paquetes requeridos, pude ver que vcvarsall.bat & Cmake pudo encontrar el compilador y se ejecutó correctamente con el siguiente registro:

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
4
Aksh1801

Tuve los mismos errores con CMake. En mi caso, he usado la versión incorrecta de Visual Studio en el diálogo inicial de CMake donde tenemos que seleccionar el compilador de Visual Studio.

Luego lo cambié a "Visual Studio 11 2012" y las cosas funcionaron. (Tengo la versión Visual Studio Ultimate 2012 en mi PC). En general, intente ingresar una versión anterior de la versión de Visual Studio en el diálogo de configuración inicial de CMake.

4
TSac

Para mí, este problema desapareció en Windows cuando moví mi proyecto a un directorio padre menos profundo, es decir, a:

C:\Users\spenc\Desktop\MyProjectDirectory

en lugar de

C:\Users\spenc\Desktop\...\MyProjectDirectory.

Creo que la fuente del problema fue que MSBuild tiene una restricción de longitud de ruta de archivo a 260 caracteres. Esto hace que la prueba de compilación básica que realiza CMake para construir un proyecto llamado CompilerIdCXX.vcxproj falle con el error:

C1083: Cannot open source file: 'CMakeCXXCompilerId.cpp'

porque la longitud de la ruta del archivo, por ejemplo,.

C:\Users\spenc\Desktop\...\MyProjectDirectory\build\CMakeFiles\...\CMakeCXXCompilerId.cpp

supera la restricción MAX_PATH.

CMake luego concluye que no hay compilador CXX.

4
spenceryue

Esto me funciona en Ubuntu 17.10 (Artful Aardvark):

apt-get update
apt-get install build-essential
3
purval_patel

Asegúrese de haber seleccionado la versión correcta de Visual Studio. Esto es más complicado de lo que parece porque Visual Studio 2015 es en realidad Visual Studio 14, y de manera similar, Visual Studio 2012 es Visual Studio 11. Había seleccionado incorrectamente Visual Studio 15 que en realidad es Visual Studio 2017, cuando tenía 2015 instalado.

2
Aryaman Gupta

Por si acaso ayuda a alguien como yo en el futuro:

He tenido este problema durante 24 horas, en 3 máquinas diferentes de 64 bits (Win7, Windows 8.1 VM y la computadora portátil WIn 8.1), mientras intentaba crear WebKit con VS 2017.

El problema simple aquí es que el compilador VC++ (es decir, cl.exe y sus DLL dependientes) no es visible para CMake. Sencillo. Al hacer que las carpetas VC++ que contienen esos archivos binarios sean visibles para CMake y su solicitud de comando de trabajo (si está ejecutando Cmake desde una solicitud de comando), ¡listo! (Además de los puntos clave planteados por otros, arriba)

De todos modos, después de todo tipo de correcciones, tal como se publicaron en estos muchos foros, descubrí que SIMPLEMENTE era una cuestión de garantizar que los contenidos de la variable PATH no estuvieran saturados con múltiples rutas BIN de Visual Studio, etc. y en cambio, apunta a:

a) la ubicación de su compilador (es decir, cl.exe para su versión preferida de Visual Studio), que en mi caso (que apunta a una plataforma de 64 bits y se desarrolla en un Host de 64 bits) es: C:\Archivos de programa (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\bin\Hostx64\x64

b) y además, la carpeta que contiene un DLL llamado dependiente (que depende de cl.exe): api-ms-win-crt-runtime-l1-1-0.dll - que en mi máquina es:

C:\Archivos de programa (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Remote Debugger\x64

Estos dos directorios se agregaron a una variable de ruta del sistema CUSTOM simplificada (que funciona bajo una solicitud de comando con privilegios de administrador), eliminó mi "No se pudo encontrar CMAKE_C_COMPILER" y "No se pudo encontrar CMAKE_CXX_COMPILER". errores.

Espero que ayude a alguien.

1
GreatCentralSun

Ninguna de las soluciones aquí resuelve mi problema, solo cuando instalo Windows Update para el tiempo de ejecución universal de C.

Ahora CMake está funcionando y no hay más enlaces que se cuelguen de Visual Studio.

Actualización para Universal C Runtime en Windows

1
Meir Gerenstadt

También puede asegurarse de que es el usuario de Sudo y que tiene acceso de LECTURA/ESCRITURA en el directorio en el que está trabajando. Tuve un problema similar en OS X, y lo solucioné simplemente ingresando en el modo Sudo.

1
daniel rubambura

Obtengo exactamente el error informado si ccache está habilitado, cuando uso el generador Xcode de CMake . Deshabilitar ccache solucionó el problema para mí. A continuación, presento una corrección/comprobación que funciona para MacOS, pero debería funcionar de manera similar en otras plataformas.

Aparentemente, es posible usar el generador Xcode de CMake (y otros) también en combinación con ccache, como se describe aquí . Pero nunca lo probé yo mismo.

# 1) To check if ccache is enabled:
echo $CC
echo $CXX
# This prints something like the following: 
#     ccache clang -Qunused-arguments -fcolor-diagnostics. 
# CC or CXX are typically set in the `.bashrc` or `.zshrc` file.

# 2) To disable ccache, use the following:
CC=clang
CXX=clang++

# 3) Then regenerate the cmake project
cmake -G Xcode <path/to/CMakeLists.txt>
1
normanius

Tuve el mismo problema con cmake-gui (No CMAKE_CXX_COMPILER could be found.), mientras que ejecutar CMake desde la línea de comandos funcionó bien. Después de agregar manualmente las entradas

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

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

a la variable de entorno PATH funcionó para mí.

0
helmken

Actualicé la actualización 2 de Visual Studio 2015 a la actualización 3 de Visual Studio 2015, y resolví mi problema.

0
TripleS

Para mí, funcionó con el símbolo del sistema del desarrollador que viene con Visual Studio y luego solo cd a your/jcef/dir y ejecuta cmake -G "Visual Studio 14 Win64" ..

0
Marc Dirven

Yo tuve el mismo problema.

Estaba intentando instalar dlib en mi máquina y me dio este error. El tutorial mencionado en la pregunta lleva a la descarga de Visual Studio 2017. Resolví esto al desinstalar VS 2017 e instalar VS 2015

Uno puede instalar VS 2015 a través de este hilo de stackoverflow: Cómo descargar Visual Studio Community Edition 2015 (no 2017)

0
Aprajita Verma

Sé que esta pregunta es sobre Visual Studio 2015. Me enfrenté a este problema con Visual Studio 2017. Cuando fui buscado en Google llegué a esta página. Después de ver las primeras 2,3 respuestas, me di cuenta de que este es el problema con la instalación de vc ++. La instalación de la carga de trabajo "Desarrollo de escritorio con c ++" resolvió el problema.

 Desktop development with c++

0
Asad