que proceso para instalar ejecutar compilar compilacion c++ c gcc comments

c++ - para - proceso de compilacion gcc



¿Cómo habilito los comentarios con estilo de C++ en gcc dejando ANSI habilitado? (8)

C ha tenido comentarios de estilo C ++ durante casi diez años, ¿tal vez deberías actualizar?

Esto acaba de surgir como una pregunta en la que trabajé, así que investigué un poco y la respuesta es un ExpertsExchange. Así que te entrego a la pregunta original asker, Manchung:

Tengo un proyecto escrito en C puro que se utilizará en el sistema integrado. Entonces, uso C puro para minimizar el tamaño del código.

Cuando compilo el proyecto, uso el indicador -ansi para asegurarme de que el código cumpla con el estándar ANSI. Sin embargo, el inconveniente de usar esta bandera ansi es que solo puedo usar los comentarios estilo C (/ * * *). Esto me causa dolor de cabeza cuando necesito usar comentarios anidados.

Entonces, mi pregunta es: ¿qué interruptores / indicadores puedo usar para permitirme usar comentarios con estilo C ++ (// comentarios) mientras mantengo habilitada la verificación ANSI al mismo tiempo?

Lo cual casi resume mi pregunta también.


Puede usar -lang-c-c ++ - preprocesador de comentarios para tener tanto el modo ANSI como los comentarios del estilo C ++.

gcc -Wp,-lang-c-c++-comments -c source.c


Si desea usar comentarios de estilo C ++ simplemente porque quiere comentar bloques, y obtener un dolor de cabeza sobre anidar / * ... * /, puede utilizar esta técnica:

#if 0 ... code ... #endif

que en realidad también hará el trabajo.


En versiones recientes de gcc, -ansi está documentado como el mismo que -std=c89 . La nueva sintaxis de comentarios solo está disponible con el estándar C99, por lo que -std=c99 lo permitiría.

También hay -std=gnu89 , que es lo mismo que -std=c89 pero que permite todas las extensiones de gcc (incluida la sintaxis de comentario de estilo de C ++, que era una extensión de GNU mucho antes de que se añadiera al estándar).

También mire la bandera en -pedantic , que podría darle algunas advertencias útiles.

Referencias


Si usa -ansi solo para verificar la compatibilidad, entonces lo más fácil podría ser preparar una secuencia de comandos o un archivo MAKE que copie el árbol fuente completo en una carpeta "ANSI" mientras remienda los // comentarios. En pseudo-bash:

SRC=main.c blip.c blip.h cp makefile ansi-src/ for F in $SRC do # does not handle // in string literals or /**/ comments! sed ''s/////.*//g'' < $F >ansi-src/$F done cd ansi-src make CFLAGS=-ansi

Si su SCC lo admite, esto también podría convertirse en un commit-hook que construye el código automáticamente en una máquina dedicada en modo ANSI después de cada confirmación y le envía un informe al respecto.


Me temo que escribir una especie de utilidad de reescritura de comentarios (como sugiere Luther Blissett) podría ser su única opción aquí. En las versiones modernas de gcc, no parece haber ningún tipo de indicador de compilador o de CLI que permita comentarios de estilo C ++ cuando se -ansi o -std=c89 .

Es posible que pueda obtener lo que desea al acercarse desde un ángulo diferente. Puede compilar con -std=c99 y usar indicadores de compilación para deshabilitar las extensiones específicas de C99 que no desea (sin saber más acerca de por qué necesita exactamente el cumplimiento de ANSI, no puedo recomendar indicadores específicos).


gcc -x cpp obligaría a los archivos a tratarse como archivos c ++, sin renombrarlos.


Puede crear automáticamente una copia de la fuente con los comentarios eliminados, y usar eso en su programa.

Por ejemplo, esto parece prometedor