He trabajado en un proyecto donde estaba usando g ++ para compilar código C en archivos que terminan en .c. La razón es que me dijeron que g ++ tiene mejores mensajes de advertencia.¿Puede CMake usar g ++ para compilar archivos C?
Estoy cambiando el proceso de compilación de este proyecto para utilizar CMake. Encontré que inicialmente CMake quería usar gcc para compilar archivos C. Esto falló debido a cosas como declarar variables en el tiempo de uso. Así que traté de usar g ++ para compilar archivos de C mediante el uso de la configuración de
set(CMAKE_C_COMPILER_INIT g++)
en el archivo CMakeLists.txt. Sin embargo, esto se traduce en el mensaje de error:
#error "The CMAKE_C_COMPILER is set to a C++ compiler"
He estado el cambio de nombre a mis archivos .c .CPP para solucionar este problema, ya que parece ser la forma más fácil para mí hacer las cosas funcionan, y tal vez la mejor manera también. Pero me preguntaba si es posible forzar a CMake a usar g ++ para compilar archivos C.
"La razón es que me han dicho que g ++ tiene mejores mensajes de advertencia." - ¿Y podrías confirmar eso? Diría que es muy cuestionable, porque (hasta donde yo sé) ambos son solo controladores que invocan el mismo compilador con diferentes argumentos (lenguaje, rutas incluidas, biblioteca estándar vinculada, etc.) Aparte de eso, g ++ no es un Compilador C así que terminas escribiendo C++ muy pobre. – delnan
Si está escribiendo C, compile con un compilador de C. C y C++ no son lo mismo. – Kusalananda
Usted dijo '_Esto falló debido a cosas como declarar variables en uso time_'; parece que está utilizando GCC en modo C89, en lugar del modo C99. Intente agregar '-std = c99' al compilador de C de alguna manera. –