2012-09-18 17 views
25

Soy un novato de CMake, y me preguntaba por un proyecto C++/C en el entorno LINUX sobre cómo CMake puede elegir compiladores entre gcc y g ++. Más específicamente, mis preguntas son las siguientes:¿Cómo CMake elige gcc yg ++ para compilar?

  1. Si un proyecto está formado por .cy archivo .cpp, ¿es cierto que los archivos .c serán compilados por gcc mientras que los archivos .cpp serán compilado por g ++?
  2. Si un proyecto tiene solo archivos c o cpp, ¿cuál es la operación de compilación predeterminada para CMake? ¿Será posible cambiarlo?

Respuesta

12

En breve, sí a ambos.

Puede manipular prácticamente todo. Hay indicadores y variables que vinculan extensiones al lenguaje; y luego, opciones de lenguaje a compilador/ejecutables que definen conjuntos de herramientas y objetivos de compilación.

Revise los siguientes enlaces a la documentación. Esas son algunas breves lecturas agradables.

  1. Change compiler/toolset
  2. Per-language extensions
  3. LANGUAGE variable

Nota: El wiki podría ser obsoleta pero se debe mantener en el caso de la materia importante y educativo.

PS. Hay un montón de opciones relacionadas. Para leer un poco más, puede consultar las siguientes secciones de documentación: Properties on Source Files y Variables for Languages. 2. y 3. provienen de estas secciones.

+0

¿Cuáles son las opciones de idioma válidas? Específicamente, ¿qué escribo como IDIOMA ??? para Objective-C++ (archivo .mm) en Ubuntu Linux? – gone

+0

Esta es una pregunta completamente diferente. IMO debes preguntarlo por separado. Especialmente porque no sé nada sobre Objective-C++ =). La cuestión es que no sé si es compatible por defecto. De lo contrario, probablemente tendrías que configurar todo por ti mismo, es decir, todas las variables '* *', pero podrías escoger el nombre de la variable como quieras =). – luk32

10

Por lo que sé CMake solo mira las extensiones de los archivos. Así que si cambias el nombre de tu archivo .c a .cpp, hasta donde yo sé, se compilará con g ++.

Es fácil cambiar ese comportamiento. CMake usa variables de entorno para ver qué compilador usar. Si desea cambiar el compilador, p. estrépito y sonido metálico ++, sólo puede hacer

exportación CC = sonido metálico export CXX = sonido metálico ++

antes de ejecutar cmake.

Cuestiones relacionadas