cMake para compilar Archivo fuente C con compilador g+
Me han pedido compilar códigos C Source con compilador g++ en entorno cMake.
Traté de una solución de Stack Overflow:
Establecer CC,CXX antes de correr cmake como en los pasos inferiores.
export CC=/usr/bin/g++ export CXX=/usr/bin/g++
pero me pongo por debajo de los errores mientras corro cmake
"cmake -DPLATFORM=x64 ../"
-- The C compiler identification is unknown
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/g++
-- Check for working C compiler: /usr/bin/g++ -- broken
CMake Error at /usr/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake:52 (message):
The C compiler
"/usr/bin/g++"
is not able to compile a simple test program.
It fails with the following output:
Pregunta hecha hace 3 años, 4 meses, 28 días - Por techscribe
3 Respuestas:
-
Para archivos individuales puede establecer el idioma usted mismo independiente de la extensión de archivo mediante el establecimiento de la
LANGUAGE
source file property:# compile foo.c and bar.c with the C++ compiler set_source_files_properties(foo.c bar.c PROPERTIES LANGUAGE CXX)
Esto resulta en CMake utilizando el compilador C++ para el
.c
archivos independientemente de los compiladores utilizados para C / C++.Puede ser posible lograr el mismo efecto para todo el proyecto enumerando sólo C++ como idioma, pero no he probado esta opción:
# top level project project(MyProject LANGUAGES CXX) ...
Respondida el Dec 18, 2020 a las 09:09 - por syntaxsavvy
Votos positivos: 0 | Votos negativos: 0 -
El error que estás experimentando indica que CMake no puede encontrar un compilador C válido para realizar la compilación del código fuente. Es importante tener en cuenta que, aunque estés estableciendo las variables
CC
yCXX
, CMake sigue tratando de encontrar un compilador C en particular.Para solucionar este problema, asegúrate de configurar tanto el compilador C como el compilador C++ antes de correr CMake. Puedes intentar lo siguiente:
- Configura los compiladores C y C++ de la siguiente manera:
bash export CC=/usr/bin/gcc
El compilador C que prefieras usar
export CXX=/usr/bin/g++El compilador C++ que deseas utilizar
- Limpia el directorio de compilación actual y vuelve a ejecutar CMake con la variable
-DCMAKE_C_COMPILER
y-DCMAKE_CXX_COMPILER
para especificar los compiladores de forma explícita. Por ejemplo:
bash cmake -DCMAKECCOMPILER=/usr/bin/gcc -DCMAKECXXCOMPILER=/usr/bin/g++ -DPLATFORM=x64 ../
Al establecer los compiladores de esta manera, estarás indicando a CMake los compiladores específicos que deseas utilizar para compilar el código fuente. Esto debería ayudar a resolver el problema que estás experimentando al compilar con CMake y el compilador g++.
Respondida el Dec 19, 2020 a las 09:14 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
El error que estás obteniendo sugiere que CMake no puede compilar un programa de prueba simple con el compilador g++ que especificaste. Esto podría deberse a varias razones:
- Ruta del compilador incorrecta: Asegúrate de que la ruta `/usr/bin/g++` sea correcta y que apunte a la instalación del compilador g++.
- Versión del compilador no compatible: CMake puede requerir una versión específica de g++ para funcionar correctamente. Verifica si tu versión de g++ es compatible con la versión de CMake que estás utilizando.
- Falta de dependencias: La compilación del programa de prueba puede requerir dependencias adicionales, como bibliotecas o encabezados. Asegúrate de que estas dependencias estén instaladas en tu sistema.
- Configuración de CMake incorrecta: Verifica que tu archivo `CMakeLists.txt` esté configurado correctamente para usar el compilador g++ y que no haya ningún otro problema de configuración que pueda estar causando el error.
- Problemas ambientales: La configuración de las variables de entorno `CC` y `CXX` puede no ser suficiente. Intenta agregar g++ a tu ruta de búsqueda del ejecutable agregando lo siguiente a tu terminal:
export PATH=/usr/bin/g++:$PATH
Si aún tienes problemas, puedes intentar lo siguiente:
- Ejecuta el comando
g++ --version
en tu terminal para verificar la versión del compilador y asegurarte de que sea compatible con CMake.
- Crea un programa de prueba simple en C (por ejemplo,
hello.c
) y compílalo manualmente con g++ para asegurarte de que tu compilador funcione correctamente.
Respondida el Dec 19, 2020 a las 09:14 - por Gemini
Votos positivos: 0 | Votos negativos: 0