Después de instalar Visual Studio 2015 y ejecutar CMake en un proyecto anterior, CMake errores indicando que no pudo encontrar el compilador C.
The C compiler identification is unknown
The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:4 (PROJECT):
No CMAKE_C_COMPILER could be found.
CMake Error at CMakeLists.txt:4 (PROJECT):
No CMAKE_CXX_COMPILER could be found.
Busqué cl.exe
en la carpeta de Visual Studio C:\Program Files\Microsoft Visual Studio 14.0
, y no pude encontrarlo.
¿Cómo configuro CMake para que funcione en Windows con Visual Studio 2015?
c++
cmake
visual-studio-2015
Asher
fuente
fuente
PATH
para encontrar el programa que necesita, por lo que si no está actualizado, entonces no puede encontrar el compilador.Respuestas:
He encontrado la solución. Aunque el IDE de Visual Studio se instaló correctamente, no instaló ninguna herramienta de compilación y, por lo tanto, no instaló el compilador de C ++.
Al intentar crear manualmente un proyecto de C ++ en la GUI de Visual Studio 2015 , pude solicitarle que descargara los paquetes de C ++. CMake pudo encontrar el compilador sin ninguna dificultad.
fuente
Aquí está la solución que funcionó para mí:
Con suerte, debería funcionar sin problemas.
fuente
cmake ..
desde allí. De todos modos, votó a favor, porque la terminal git-bash, por ejemplo, no pone todo automáticamente en su camino. ¡Esto me ayudó!Busqué en el archivo CMakeError.log y encontré un error sobre
cannot run 'rc.exe'
Busqué y encontré esta respuesta para copiar RC.Exe y RcDll.Dll del contenedor de SDK de Microsoft al contenedor de VC, y luego CMake funcionó.
Editar: la respuesta principal a otra pregunta sugiere que es un problema de PATH, por lo que podría ser suficiente para asegurarse de que el contenedor de Microsoft SDK esté en su PATH.
fuente
Asegúrese de que está utilizando la versión correcta de Visual Studio en el generador. Había seleccionado Visual Studio 15 incorrectamente cuando se instaló Visual Studio 14.
fuente
Aquellos que tropiezan con esto en Visual Studio 2017: hay una característica relacionada con CMake que debe seleccionarse e instalarse junto con los conjuntos de herramientas del compilador relevantes. Vea la captura de pantalla a continuación.
fuente
Si ninguna de las soluciones anteriores funcionó, deténgase y realice una verificación de cordura.
Me quemé usando la
-G <config>
cadena incorrecta y me dio este error engañoso.Primero, ejecute desde el símbolo del sistema VS, no desde el símbolo del sistema normal. Puede encontrarlo en
Start Menu -> Visual Studio 2015 -> MSBuild Command Prompt for VS2015
Esto configura todas las rutas correctas a las herramientas VS, etc.Ahora vea qué generadores están disponibles en cmake ...
cmake -help
...<snip>... The following generators are available on this platform: Visual Studio 15 [arch] = Generates Visual Studio 15 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files. Optional [arch] can be "Win64" or "IA64". ...
Luego elija la cuerda apropiada con el [arco] agregado.
mkdir _build cd _build cmake .. -G "Visual Studio 15 Win64"
Ejecutar cmake en un subdirectorio hace que sea más fácil hacer una 'limpieza' ya que puede eliminar todo en ese directorio.
Actualicé a Visual Studio 15 pero no estaba prestando atención y estaba tratando de generar para 2012.
fuente
Para mí, revisé el
CMakeError.log
archivo y encontré:Esto es a pesar de usar Visual Studio 2017 en Windows 7. Por lo tanto, parece que CMake está intentando construir su proyecto de detección con el SDK de Windows 8.1.
Usé el instalador de Visual Studio para agregar ese componente y ahora CMake está feliz como una almeja.
fuente
Menú → Visual Studio 2015 → Símbolo del sistema de MSBuild para Visual Studio 2015. Luego, CMake puede encontrar
cl.exe
.Cambie la ruta superior a donde está instalado su SDK de Windows.
CMake puede encontrar
rc.exe
.cd a la ruta de
CMakeLists.txt
y hacer:-G
CMake debe recuperar el parámetro posterior . Use--help
; puede que tenga o no el generador.fuente
Me encontré con el mismo problema y lo solucioné reiniciando la instalación de Visual Studio y marcando la siguiente opción:
Windows and Web Development
/Universal Windows App Development Tools
/Windows 10 SDK
Contiene los encabezados estándar de C ++ que se utilizan en la mayoría de las aplicaciones y, por lo tanto, a menudo es necesario instalarlo también.
fuente
Tuve este problema en Windows 10 cuando usaba Visual Studio 2015 Professional, ¡mientras que Visual Studio 2015 Express funcionaba! En Windows 7, ambas versiones de Visual Studio solían funcionar.
Los nuevos proyectos creados a partir del IDE de Visual Studio 2015 Professional se compilan correctamente, pero CMake no puede encontrar los informes del compilador:
Actualicé CMake de 3.4.1 a 3.11.4, y ahora el problema desapareció.
fuente
Si está en Visual Studio 2017, necesita al menos CMake 3.8.
fuente
Tuve un problema similar con el proyecto Visual Studio 2017 generado a través de CMake. Algunos de los paquetes faltaban al instalar Visual Studio en el desarrollo de escritorio con C ++. Ver instantánea:
Paquetes de Visual Studio 2017:
Además, actualice CMake a la última versión.
fuente
En mi caso, había un conjunto de variables de entorno que fue el motivo de este error. El problema se resolvió después de eliminar cxx_flags de las variables de entorno.
fuente
Tuve este problema con CMake 3.12.1, después de una actualización de Visual Studio 2017. Simplemente volví a ejecutar CMake y funcionó.
fuente
En mi caso, pude ver en el
CMakeError.log
que CMake no pudo encontrar el SDK de Windows (MSB8003: Could not find WindowsSDKDir variable from the registry
).La versión se puede especificar en la línea de comandos en la primera ejecución de CMake usando:
Llegué más lejos después de configurar eso, pero encontré más problemas más tarde (así que supongo que mi entorno está desordenado de alguna manera), pero tal vez ayude a alguien con este problema.
fuente
Un par de consejos:
Mi problema fue una combinación de lo mencionado anteriormente: configuré la versión del compilador en 15 en lugar de 14 y cuando lo corrigí, tuve que eliminar la caché.
También inicié el símbolo del sistema de Visual Studio como administrador y desde allí ejecuté cmake-gui.exe
Entonces todo funcionó como se suponía.
fuente
En mi caso, el problema fue que el proyecto principal, que incluye googletest a través de
fue definido como
De alguna manera, CMake no reconoce
ya que el compilador de C no está configurado en el padre.
Resolví el problema usando
en mi
CMakeLists.txt
archivo principal .fuente
Esta podría ser otra solución para aquellos con la última versión del creador de Windows 10:
Stack Overflow post Fatal error LNK1104: no se puede abrir el archivo 'gdi32.lib'
fuente
Ninguna de las soluciones anteriores funcionó para mí. Sin embargo, noté que aunque instalé Visual Studio versión 15 (que no debe confundirse con Visual Studio 2015), el directorio creado en mi computadora era para Visual Studio 14.
Cuando especifiqué Visual Studio 14 cuando presioné el botón de configuración, funcionó.
fuente
Encontré esta solución en stackoverflow y trabajo para mí, aunque no trabajo en otras soluciones si tiene un sistema operativo Windows 10, seguir los siguientes pasos solucionará el problema:
1) vaya a C: \ Archivos de programa (x86) \ Microsoft SDKs \ Windows \ v7.1A \ Bin
2) luego copie RC.exe y RcDll de este archivo
3) vaya a C: \ Archivos de programa (x86) \ Microsoft Visual Studio 14.0 \ VC \ bin y pegue los dos archivos que ha copiado en él.
eso es todo, espero que sea de ayuda ...
fuente
Busque en Cmakelists.txt si encuentra ARM, necesita instalar C ++ para ARM y también vcvarsall.bat usar para la carpeta bin de 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 podrían desaparecer:
No se pudo encontrar CMAKE_C_COMPILER.
No se pudo encontrar CMAKE_CXX_COMPILER.
Si lo anterior no resuelve su problema?
Opcionalmente, puede eliminar las opciones C y CXX en cmakelists.txt configurando # delante de donde está enable_language (C). Y evite la compilación del procesador ARM de Android.
fuente
Resuelto agregando el componente faltante Modificar-> continuar agregando como sigue
fuente
Tuve un problema relacionado: los generadores de Visual C ++ ni siquiera estaban en la lista cuando se ejecutaban
cmake --help
.Corrí
where cmake
en la consola y descubrí que cygwin también proporciona su propio archivo cmake.exe , que se estaba utilizando. Cambiar el orden de los directorios en PATH solucionó el problema.fuente
La comprobación de CMakeErrors.log en CMakeFiles devolvió:
El error significa que las herramientas de compilación para XP (v140_xp) no están instaladas. Para solucionarlo, instalé la función adecuada en el instalador de Visual Studio 2019 en la pestaña Componentes individuales:
fuente
Tuve este problema con CMake GUI y VS 21019 Community Edition. Creo que he instalado CMake antes de Visual Studio; ciertamente, después de actualizar CMake 3.15.2 a 3.15.3, el problema desapareció.
fuente
Verifique la carpeta de nombres demasiado larga o no.
fuente
Porque CMake no puede encontrar su compilador de Visual Studio. Inicie cualquier proyecto que descargue los compiladores requeridos y CMake debe poder encontrarlo entonces.
fuente