c++ - La identificación del compilador CXX es desconocida
visual-studio-2012 cmake (9)
Acabo de encontrarme con este problema, después de desinstalar algún software de MS. Lo arreglé por la reparación visual studio 2012. Primero vaya a [Panel de control], luego seleccione Visual Studio y repárelo, las cosas irán ahora mismo.
Estamos teniendo problemas para compilar un proyecto con CMake (v2.8.12) en Windows 7 64Bit con Visual Studio 2012. CMake nos da los siguientes errores. Ya intentamos iniciar Cmake desde la línea de comandos de Visual Studio usando derechos de administrador. Parece que hubo un error similar en CMake 2.8.11: http://www.cmake.org/Bug/view.php?id=14440
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:446 (execute_process):
execute_process given COMMAND argument with no value.
Call Stack (most recent call first):
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:48 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCCompiler.cmake:131 (CMAKE_DETERMINE_COMPILER_ID)
CMakeLists.txt:2 (project)
The C compiler identification is unknown
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:446 (execute_process):
execute_process given COMMAND argument with no value.
Call Stack (most recent call first):
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:48 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCXXCompiler.cmake:127 (CMAKE_DETERMINE_COMPILER_ID)
CMakeLists.txt:2 (project)
The CXX compiler identification is unknown
Could NOT find SWIG (missing: SWIG_EXECUTABLE SWIG_DIR)
CMake Warning at src/CMakeLists.txt:44 (message):
SWIG was not found. You will not be able to compile for C#.
Configuring incomplete, errors occurred!
See also "C:/Users/hci/laser_control/CMakeFiles/CMakeOutput.log".
See also "C:/Users/hci/laser_control/CMakeFiles/CMakeError.log".
Asegúrese de seleccionar la versión adecuada de Visual Studio. Por ejemplo, Visual Studio 2012 es la versión 11.
El mismo problema aquí con cmake 2.8.12 y visual studio 10. Es posible que Cmake no pueda encontrar el compilador. Resolví el problema al desinstalar la última versión e instalé cmake 2.8.10.
Esos mensajes de error
The C compiler identification is unknown
The CXX compiler identification is unknown
significa que CMake encontró o asumió un compilador, pero no pudo compilar un programa de prueba simple.
Eche un vistazo a CMakeFiles/CMakeError.log
y compruebe el mensaje de error para ver:
- qué ruta del compilador / línea de comando CMake usó
¿Cuál fue el mensaje de error llamando al compilador?
por ejemplo,
LINK : fatal error LNK1181: cannot open input file ''kernel32.lib''
Si agrega --debug-trycompile
a la llamada cmake
CMake mantendrá incluso los archivos que ha intentado probar la compilación (para que pueda copiar / pegar / volver a ejecutar la línea de comandos desde el registro de errores en su shell cmd
).
La última vez que tuve este problema ...
La última vez que tuve este problema fue cuando mi instalación estándar de Visual Studio 2012 Professional no instaló ningún SDK de Windows (el registro de errores mostraba un encabezado faltante del SDK).
Para verificar la instalación de su SDK, por ejemplo, verifique que tenga instalado algún Compilador de recursos. Debería estar en un camino similar a:
C:/Program Files (x86)/Microsoft SDKs/Windows/v[some version]/bin/RC.Exe
Como me faltaba este, o más preciso que cualquier SDK, instalé el SDK de Windows 8.1 (ya que Visual Studio 2012 está orientado a Windows 8.x) y voila, mi CMake pudo nuevamente compilar los programas (de prueba).
Referencia
Me enfrenté al mismo problema. Construir y ejecutar un proyecto desde Visual Studio no me funcionó. Sin embargo los siguientes me funcionaron:
- Abra el símbolo del sistema para desarrolladores desde las herramientas de Visual Studio.
- Ir al directorio donde está presente cmake.exe.
- Ejecutarlo.
Esperemos que funcione para ti también.
Si usa CMake 3.4.0, intente actualizar a una versión más nueva. Un error relacionado con esto fue corregido relativamente recientemente (ver el informe de errores ).
También tuve un problema similar, si está usando Microsoft Visual Studio 2012, eso podría deberse a que la actualización de KB2781514 no se encuentra.
Después de instalar la siguiente actualización, CMake comienza a detectar correctamente los compiladores de Visual Studio 2012 c / c ++.
http://www.microsoft.com/en-us/download/details.aspx?id=36020
Tuve el mismo problema y lo arreglé corriendo cmake como administrador
Tuve el mismo problema y tuve que usar el "File -> Delete Cache"
, ya que accidentalmente configuré CMake para usar la versión de estudio visual incorrecta.