es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

CMake con un compilador C incorporado que no admite “-o”

Estoy escribiendo firmware utilizando un compilador antiguo de C llamado HC12. Actualmente uso GNU Make para el sistema de compilación. Espero empezar a utilizar CMake, pero me encontré con un problema:
El compilador no admite algunas sintaxis estándar del compilador de C, en concreto el flag “-o”.

He creado un archivo de configuración de herramientas personalizado y he añadido todas mis banderas de c, pero CMake parece agregar implícitamente el “-o” para compilar archivos fuente en los archivos de GNU Make generados.

El compilador HC12 me permite usar -objn=”nombre_del_archivo” para especificar el nombre de archivo de salida.

Mi pregunta: ¿Hay alguna forma de hacer que CMake deje de añadir el implícito “-o” para poder utilizar este compilador?

Sé que hay un puerto de GCC para este procesador, pero cambiar de compilador en este momento no es una opción.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de hacer que CMake deje de utilizar la opción implícita “-o”. En tu archivo de herramientas personalizadas, agrega la siguiente línea:

    set(CMAKE_C_COMPILE_OBJECT "<cmake_c_compiler> ${FLAGS} -objn=<target_object> <source>")
    

    Esto cambiará el comando de compilación de objetos C por defecto y utilizará “-objn” en lugar de “-o” para especificar el nombre del archivo de salida. Asegúrate de reemplazar “” por la ruta de tu compilador HC12 y “” por cualquier bandera adicional que desees pasar al compilador.

    Con esta modificación, CMake debería generar Makefiles que utilicen “-objn” en lugar de “-o” para compilar archivos fuente.

Comments are closed.