tutorial - visual studio c++ descargar
Error de CMake en CMakeLists.txt: 30(proyecto): no se pudo encontrar CMAKE_C_COMPILER (19)
Estoy tratando de 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:
Actualicé la actualización 2 de Visual Studio 2015 a la actualización 3 de Visual Studio 2015, y resolvió mi problema.
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 instalé 2015.
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 computadora portátil WIn 8.1), 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 VC ++ que contienen esos binarios sean visibles para CMake y su símbolo del sistema operativo (si está ejecutando Cmake desde un símbolo del sistema), ¡listo! (Además de los puntos clave planteados por otros, arriba)
De todos modos, después de todo tipo de correcciones, como se publicó en estos muchos foros, descubrí que era SIMPLEMENTE una cuestión de garantizar que los contenidos de la variable PATH no estén saturados 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 (dirigida a la 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 PERSONALIZADA (trabajando bajo una solicitud de comando privilegiada por el administrador), eliminaron mi "No se pudo encontrar CMAKE_C_COMPILER" y "No se pudo encontrar CMAKE_CXX_COMPILER". errores
Espero que ayude a alguien.
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 desea generar. Los siguientes tutoriales son una colección de respuestas aquí sobre y algunas de mis propias experiencias con CMake en Microsoft Windows 7/8/10 y Ubuntu 14.04.
Condiciones previas
-
Instaló el compilador / IDE y pudo compilar una vez cualquier otro programa (directamente sin CMake)
- Por ejemplo, puede tener el IDE, pero es posible que no haya instalado el compilador o el marco de soporte en sí mismo, como se describe en Solución de generación de problemas para VS 2017 con CMake o ¿Cómo le digo a CMake que use Clang en Windows?
- Tienes la última versión de CMake
- Tiene derechos de acceso en la unidad que desea que CMake genere su entorno de compilación
-
Tiene un directorio de compilación limpio (porque CMake almacena cosas en caché desde el último intento), por ejemplo, como subdirectorio de su árbol de origen
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 shell de comando apunte a su directorio de salida binario recién creado.
Cosas generales que puedes / debes intentar
-
¿CMake puede encontrar y ejecutar cualquier / su compilador predeterminado? Corre sin dar un generador
> cmake .. -- Building for: Visual Studio 14 2015 ...
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 compilación anterior, mire
CMakeFiles/CMakeError.log
paraCMakeFiles/CMakeError.log
si hay algún mensaje de error que tenga sentido 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 :
> cmake --help > cmake -G "Visual Studio 14 2015" ..
-
Si eso no ayuda, intente configurar 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
Developer Command Prompt for VS2015
delDeveloper Command Prompt for VS2015
en el menú Inicio de Windows enAll Programs
/Visual Studio 2015
/Visual Studio Tools
(gracias en @Antwane por la pista).
Antecedentes
: CMake admite todas las versiones y sabores 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 se le ocurrió algo, simplemente Intenta llamar al compilador.
CMake no puede encontrar GCC (MinGW / MSys)
-
Inicia el shell
bash
MSys conmsys.bat
e intenta llamar directamente agcc
$ 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.Entonces 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 del compilador (consulte ¿Cómo establecer la variable de entorno PATH en el script CMake? ) E intente nuevamente. -
Si todavía no funciona, intente configurar 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 obtener más detalles, consulte Cómo especificar una nueva ruta de GCC para CMake
Nota : Al usar el generador "MinGW Makefiles", debe usar el programa
mingw32-make
distribuido con MinGW -
¿Sigue sin funcionar? Eso es raro. Asegúrese de que el compilador esté allí y que tenga derechos ejecutables (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 respeta -D CMAKE_CXX_COMPILER = g ++ y el compilador de configuración de error de Cmake
Alternativamente, esas variables también se pueden configurar a través de
cmake-gui.exe
en Windows. Ver Cmake no puede encontrar el compilador
Antecedentes
: casi lo mismo que con Visual Studio.
CMake admite 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 se realiza
cross-compiling
) e intenta agregarlo a todos los binutils de la cadena de herramientas del compilador GNU (
ar
,
ranlib
,
strip
,
ld
,
nm
,
objdump
y
objcopy
).
Esto funciona para mí en Ubuntu 17.10 (Artful Aardvark):
apt-get update
apt-get install build-essential
Me encontré con este problema al construir libgit2-0.23.4. Para mí, el problema era que el compilador de C ++ y los paquetes relacionados no estaban instalados 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 el C ++ y paquetes relacionados.
Después de descargar los paquetes requeridos, pude ver vcvarsall.bat y Cmake pudo encontrar el compilador y ejecutó con éxito 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
Mire en Cmakelists.txt si encuentra ARM, necesita instalar C ++ para ARM
Son estos paquetes:
C ++ Plataforma universal de Windows para ARM64 "No requerido"
Compiladores y bibliotecas de Visual C ++ para ARM "No requerido"
Compiladores y bibliotecas de Visual C ++ para ARM64 "Muy probablemente necesarios"
Required for finding Threads on ARM
enable_language(C)
enable_language(CXX)
Entonces los problemas
No se pudo encontrar CMAKE_C_COMPILER.
No se pudo encontrar CMAKE_CXX_COMPILER.
Podría desaparecer a menos que especifique el compilador de c como clang, y tal vez la instalación de clang funcione en otro favor.
Puede eliminar opcionalmente en cmakelists.txt ambos con # antes de enable_language si no está compilando para ARM.
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.
Obtengo exactamente el error informado si ccache está habilitado, cuando uso el generador Xcode de CMake . Desactivar ccache solucionó el problema para mí. 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 here . 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>
Para Ubuntu, instale las siguientes cosas:
sudo apt-get update && sudo apt-get install build-essential
Para mí funcionó usar el símbolo del sistema del desarrollador que viene con Visual Studio y luego simplemente
cd
a
your/jcef/dir
y ejecutar
cmake -G "Visual Studio 14 Win64" ..
Para mí, este problema desapareció en Windows cuando moví mi proyecto a un directorio principal menos profundo, es decir:
C:/Users/spenc/Desktop/MyProjectDirectory
en vez de
C:/Users/spenc/Desktop/.../MyProjectDirectory
.
Creo que el origen 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 CMake realiza 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
excede la restricción MAX_PATH.
CMake luego concluye que no hay un compilador CXX.
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.
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 MSDN Visual C ++ en Visual Studio 2015 me dio la ayuda que necesitaba.
Visual Studio 2015 no viene con C ++ instalado de manera predeterminada. Por lo tanto, crear un nuevo proyecto de C ++ le pedirá que descargue los componentes necesarios de C ++.
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 modo sudo.
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í.
Tuve los mismos errores con CMake. En mi caso, he usado una 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 Visual Studio en el cuadro de diálogo de configuración inicial de CMake.
Yo tuve el mismo problema.
Intenté instalar dlib en mi máquina y me dio este error. El tutorial mencionado en la pregunta lleva a descargar Visual Studio 2017. Resolví esto desinstalando VS 2017 e instalando VS 2015
Se puede instalar VS 2015 a través de este hilo de : Cómo descargar Visual Studio Community Edition 2015 (no 2017)