Estoy intentando crear una solución de Visual Studio con CMake para compilar la última versión de aseprite y CMake me sigue dando:
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:
c++
visual-studio
gcc
cmake
visual-studio-2015
Caio Fontes
fuente
fuente
cmake .. -G "Visual Studio 14 2015"
ocmake .. -G "MSYS Makefiles"
(sigcc
significaMinGW
). Y he visto esas preguntas mucho (como aquí , aquí o aquí ) y creo que nos falta una respuesta combinada / tutorial sobre SO.Respuestas:
Esos mensajes de error
o
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 mientras detecta 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 colecció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
Tiene un directorio de compilación limpio (porque CMake almacena en caché las cosas del último intento), por ejemplo, como subdirectorio de su árbol de fuentes
Windows cmd.exe
Bash shell
y asegúrese de que su shell de comandos apunte a su directorio de salida binaria recién creado.
Cosas generales que puedes / debes probar
¿CMake puede encontrar y ejecutar con cualquier compilador predeterminado? Corre sin dar un generador
Perfecto si determina correctamente el generador a usar, como aquí
Visual Studio 14 2015
¿Qué fue lo que realmente falló?
En el directorio de salida de la compilación anterior, busque
CMakeFiles\CMakeError.log
cualquier mensaje de error que tenga sentido para usted o intente abrir / compilar el proyecto de prueba generado enCMakeFiles\[Version]\CompilerIdC
|CompilerIdCXX
directamente desde la línea de comando (como se encuentra en el registro de errores).CMake no puede encontrar Visual Studio
Intente seleccionar la versión correcta del generador :
Si eso no ayuda, intente configurar primero las variables de entorno de Visual Studio (la ruta podría variar):
o use el
Developer Command Prompt for VS2015
atajo en su menú de inicio de Windows enAll Programs
/Visual Studio 2015
/Visual Studio Tools
(gracias a @Antwane por la pista).Antecedentes : CMake admite 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
), 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)
Inicia el
bash
shell de MSys conmsys.bat
e intenta llamar directamentegcc
Aquí encontró
gcc
y se queja de que no le di ningún parámetro con el que trabajar.Entonces lo siguiente debería funcionar:
Si no se encontró GCC, llame
export PATH=...
para agregar la ruta del compilador (consulte ¿Cómo configurar la variable de entorno PATH en el script CMake? ) E intente nuevamente.Si aún no funciona, intente establecer la
CXX
ruta del compilador directamente exportándolo (la ruta puede variar)Para obtener más detalles, consulte Cómo especificar una nueva ruta de GCC para CMake
Nota : Cuando use el generador "MinGW Makefiles", debe usar el
mingw32-make
programa distribuido con MinGW¿Sigue sin funcionar? Eso es raro. Asegúrese de que el compilador esté allí y tenga derechos de ejecución (consulte también el capítulo anterior sobre las condiciones previas).
De lo contrario, el último recurso de CMake es no intentar ninguna búsqueda del compilador y establecer las variables internas de CMake directamente por
Para obtener más detalles, consulte Cmake no respeta -D CMAKE_CXX_COMPILER = g ++ y el compilador de configuración de errores de Cmake
Alternativamente, esas variables también se pueden configurar a través
cmake-gui.exe
de Windows. Ver Cmake no puede encontrar el compiladorAntecedentes : lo mismo que con Visual Studio. CMake admite todo tipo de versiones de GCC. Busca las variables de entorno (CC, CXX, etc.) o simplemente intenta llamar al compilador. Además, se detectará cualquier prefijo (cuando -compilación cruzada ) y trata de añadir a todos binutils de la cadena de herramientas GNU (compilador
ar
,ranlib
,strip
,ld
,nm
,objdump
, yobjcopy
).fuente
Para Ubuntu, instale lo siguiente:
fuente
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 resolvió el problema.
Ver captura de pantalla adjunta.
fuente
También experimenté este error al trabajar con CMake:
El cuadro de 'advertencia' en el artículo de la biblioteca de MSDN Visual C ++ en Visual Studio 2015 me dio la ayuda que necesitaba.
Visual Studio 2015 no viene con C ++ instalado de forma predeterminada. Por lo tanto, la creación de un nuevo proyecto de C ++ le pedirá que descargue los componentes de C ++ necesarios.
fuente
Esto me funciona en Ubuntu 17.10 (Artful Aardvark):
fuente
Me encontré con este problema mientras construía libgit2-0.23.4. Para mí, el problema era que el compilador de C ++ y los paquetes relacionados no se instalaron con VS2015, por lo tanto, faltaba el archivo "C: \ Archivos de programa (x86) \ Microsoft Visual Studio 14.0 \ VC \ vcvarsall.bat" y Cmake no pudo encontrar el compilador.
Intenté crear manualmente un proyecto C ++ en la GUI de Visual Studio 2015 ( C: \ Archivos de programa (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ devenv.exe ) y mientras creaba el proyecto, recibí un mensaje para descargar C ++ y paquetes relacionados.
Después de descargar los paquetes requeridos, pude ver que vcvarsall.bat y Cmake pudieron encontrar el compilador y ejecutarlo correctamente con el siguiente registro:
fuente
Tuve los mismos errores con CMake. En mi caso, he usado la versión incorrecta de Visual Studio en el cuadro de 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 cuadro de diálogo de configuración inicial de CMake.
fuente
Para mí, este problema desapareció en Windows cuando moví mi proyecto a un directorio principal menos profundo, es decir, a:
C:\Users\spenc\Desktop\MyProjectDirectory
en vez 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 básica del compilador 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 un compilador CXX.
fuente
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 Visual Studio 15, que en realidad es Visual Studio 2017, cuando tenía 2015 instalado.
fuente
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 se cuelgan más enlaces de Visual Studio.
Actualización para Universal C Runtime en Windows
fuente
También puede asegurarse de que es el usuario de sudo y 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.
fuente
En caso de que ayude 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 WIn 8.1 laptop), mientras intentaba construir WebKit con VS 2017.
El problema simple aquí es que el compilador de VC ++ (es decir, cl.exe y sus DLL dependientes) no es visible para CMake. Sencillo. Al hacer que las carpetas de VC ++ que contienen esos binarios sean visibles para CMake y su símbolo del sistema de trabajo (si está ejecutando Cmake desde un símbolo del sistema), ¡voilá! (Además de los puntos clave planteados por otros, arriba)
De todos modos, después de todo tipo de correcciones, como se publicaron en estos muchos foros, descubrí que era SIMPLEMENTE una cuestión de asegurar que el contenido de la variable PATH no esté abarrotado con múltiples rutas BIN de Visual Studio, etc. y en su lugar, 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 (apuntando a una plataforma de 64 bits y desarrollándose 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 una DLL dependiente llamada (de la que depende 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 simplificada y CUSTOM (trabajando bajo un símbolo del sistema de comando privilegiado de administrador), eliminaron mi "No se pudo encontrar CMAKE_C_COMPILER" y "No se pudo encontrar CMAKE_CXX_COMPILER". errores.
Espero que ayude a alguien.
fuente
Recibo exactamente el error informado si ccache está habilitado, cuando uso el generador Xcode de CMake . Desactivar ccache solucionó el problema. A continuación, presento una corrección / verificació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.
fuente
Actualicé la actualización 2 de Visual Studio 2015 a la actualización 3 de Visual Studio 2015 y resolvió mi problema.
fuente
Tuve el mismo problema con cmake-gui (
No CMAKE_CXX_COMPILER could be found.
), mientras que ejecutaba CMake desde la línea de comando funcionaba bien. Después de agregar manualmente las entradasC:\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í.
fuente
Para mí funcionó a utilizar el desarrollador símbolo del sistema que viene con Visual Studio y luego simplemente
cd
parayour/jcef/dir
y corrercmake -G "Visual Studio 14 Win64" ..
fuente
Yo tuve el mismo problema.
Estaba intentando instalar dlib en mi máquina y me dio este error. El tutorial mencionado en la pregunta conduce a la descarga de Visual Studio 2017. Resolví esto desinstalando VS 2017 e instalando VS 2015
Se puede instalar VS 2015 a través de este hilo de stackoverflow: Cómo descargar Visual Studio Community Edition 2015 (no 2017)
fuente
Sé que esta pregunta es sobre Visual Studio 2015. Enfrenté este problema con Visual Studio 2017. Cuando busqué en Google, llegué a esta página. Después de mirar 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.
fuente
Busque en Cmakelists.txt si encuentra ARM necesita instalar C ++ para ARM
Son estos paquetes:
Plataforma universal de Windows C ++ para ARM64 "No se requiere"
Bibliotecas y compiladores de Visual C ++ para ARM "No es necesario"
Compiladores y bibliotecas de Visual C ++ para ARM64 "Muy probablemente necesario"
Entonces los problemas
No se pudo encontrar CMAKE_C_COMPILER.
No se pudo encontrar CMAKE_CXX_COMPILER.
Podría desaparecer a menos que especifiques el compilador c como clang, y tal vez la instalación de clang funcione en otro favor.
Puede eliminar opcionalmente en cmakelists.txt con # antes de enable_language si no está compilando para ARM.
fuente