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 y CXX, 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.
    3. Proporciona más información sobre tu sistema y la configuración de CMake para que podamos depurar el problema de manera más efectiva.

    Respondida el Dec 19, 2020 a las 09:14 - por Gemini

    Votos positivos: 0 | Votos negativos: 0