Este es el comando aarch64-linux-gnu-cpp que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
cpp - El preprocesador de C
SINOPSIS
cpp [-Dmacro[=definir] ...] [-Umacro]
[-Idir...] [-Yo citodir...]
[-Wadvertir...]
[-M|-MM] [-MG] [-MF nombre de archivo]
[-MP] [-MQ dirigidos...]
[-MONTE dirigidos...]
[-P] [-directorio-de-trabajo-fno]
[-x idioma] [-std =estándar]
en archivo archivar
Aquí solo se enumeran las opciones más útiles; vea a continuación el resto.
DESCRIPCIÓN
El preprocesador de C, a menudo conocido como cpp, Es un macro procesador que es utilizado automáticamente por
el compilador de C para transformar su programa antes de la compilación. Se llama macro
procesador porque te permite definir macros, que son abreviaturas breves para más
construcciones
El preprocesador C está diseñado para usarse solo con código fuente C, C ++ y Objective-C.
En el pasado, se ha abusado de él como procesador de texto general. Se ahogará con la entrada que
no obedece las reglas léxicas de C. Por ejemplo, los apóstrofos se interpretarán como el
comienzo de constantes de caracteres y provocar errores. Además, no puedes confiar en él.
preservando las características de la entrada que no son significativas para los lenguajes de la familia C.
Si un Makefile está preprocesado, todas las pestañas duras se eliminarán y el Makefile
no trabajo.
Habiendo dicho eso, a menudo puede salirse con la suya usando cpp en cosas que no son C.Otros
Los lenguajes de programación algol son a menudo seguros (Pascal, Ada, etc.)
precaución. -cpp-tradicional El modo conserva más espacios en blanco y, por lo demás, es más
permisivo. Muchos de los problemas se pueden evitar escribiendo comentarios de estilo C o C ++
en lugar de comentarios en el idioma nativo y mantener las macros simples.
Siempre que sea posible, debe utilizar un preprocesador adaptado al idioma que está escribiendo.
in. Las versiones modernas del ensamblador GNU tienen funciones de macro. Nivel más alto
Los lenguajes de programación tienen su propio mecanismo de inclusión y compilación condicional. Si
todo lo demás falla, pruebe con un verdadero procesador de texto general, como GNU M4.
Los preprocesadores de C varían en algunos detalles. Este manual trata sobre el preprocesador GNU C, que
proporciona un pequeño superconjunto de las características de la norma ISO C. En su modo predeterminado, el GNU
El preprocesador de C no hace algunas cosas requeridas por el estándar. Estas son caracteristicas
que rara vez, si alguna vez, se utilizan, y pueden causar cambios sorprendentes en el significado de un
programa que no los espera. Para obtener el estándar C de ISO estricto, debe usar el
-std = c90, -std = c99 or -std = c11 opciones, dependiendo de la versin del estndar que
querer. Para obtener todos los diagnósticos obligatorios, también debe usar -pedante.
Este manual describe el comportamiento del preprocesador ISO. Minimizar gratuito
diferencias, donde el comportamiento del preprocesador ISO no entra en conflicto con el tradicional
semántica, el preprocesador tradicional debería comportarse de la misma manera. Los diversos
las diferencias que existen se detallan en la sección Tradicional Moda.
Para mayor claridad, a menos que se indique lo contrario, las referencias a CPP en este manual, consulte GNU CPP.
OPCIONES
El preprocesador de C espera dos nombres de archivo como argumentos, en archivo y archivar.
el preprocesador lee en archivo junto con cualquier otro archivo que especifique con #incluir. Todos
la salida generada por los archivos de entrada combinados se escribe en archivar.
Ambos en archivo or archivar puede ser -, tal como en archivo significa leer desde la entrada estándar y
as archivar significa escribir en la salida estándar. Además, si se omite cualquiera de los archivos, significa
lo mismo que si - se había especificado para ese archivo.
A menos que se indique lo contrario, o la opción termine en =, todas las opciones que toman un argumento pueden
hacer que ese argumento aparezca inmediatamente después de la opción, o con un espacio entre
opción y argumento: -ifoo y -I foo tienen el mismo efecto.
Muchas opciones tienen nombres de varias letras; por lo tanto, varias opciones de una sola letra pueden no be
agrupado: -dM es muy diferente de -d -M.
-D nombre
Predefinir nombre como macro, con definición 1.
-D nombre =definición
Los contenidos de definición son tokenizados y procesados como si aparecieran durante
fase de traducción tres en un #definir directiva. En particular, la definición será
truncado por caracteres de nueva línea incrustados.
Si está invocando el preprocesador desde un shell o un programa similar al shell, es posible que necesite
utilizar la sintaxis de comillas del shell para proteger caracteres como espacios que tienen un
significado en la sintaxis de shell.
Si desea definir una macro similar a una función en la línea de comando, escriba su argumento
lista con paréntesis alrededor antes del signo igual (si lo hay). Los paréntesis son
significativo para la mayoría de los proyectiles, por lo que deberá citar la opción. Con sh y csh,
-D'nombre (argumentos ...)=definición' funciona
-D y -U las opciones se procesan en el orden en que se dan en la línea de comando. Todos
-imacros presentar y -incluir presentar las opciones se procesan después de todo -D y -U .
-U nombre
Cancelar cualquier definición previa de nombre , ya sea integrado o provisto de un -D .
-undef
No predefinir macros específicas del sistema o de GCC. El estándar predefinido
las macros permanecen definidas.
-I dir
Agregar el directorio dir a la lista de directorios en los que se buscarán archivos de encabezado.
Directorios nombrados por -I se buscan antes de que el sistema estándar incluya directorios.
Si el directorio dir es un directorio de inclusión del sistema estándar, la opción se ignora para
asegúrese de que el orden de búsqueda predeterminado para los directorios del sistema y el tratamiento especial
de los encabezados del sistema no se anulan. Si dir comienza con "=", entonces el "=" será
reemplazado por el prefijo sysroot; ver --sysroot y -isysroot.
-o presentar
Escribir salida en presentar. Esto es lo mismo que especificar presentar como la segunda no opción
argumento para cpp. gcc tiene una interpretación diferente de un segundo argumento de no opción,
entonces debes usar -o para especificar el archivo de salida.
-Pared
Activa todas las advertencias opcionales que son deseables para el código normal. En la actualidad este
is -Comentario, -Wtrigrafías, -Wmultichar y una advertencia sobre la promoción de números enteros que provoca
cambio de signo en expresiones "#if". Tenga en cuenta que muchas de las advertencias del preprocesador
están activados de forma predeterminada y no tienen opciones para controlarlos.
-Comentario
-Comentarios
Advertir cada vez que una secuencia de inicio de comentarios /* aparece en un /* comentario, o siempre que un
barra invertida-nueva línea aparece en un // comentario. (Ambas formas tienen el mismo efecto).
-Wtrigrafías
La mayoría de los trígrafos en los comentarios no pueden afectar el significado del programa. Sin embargo, un
trígrafo que formaría un salto de línea nuevo (?? / al final de una línea) puede, por
cambiando dónde comienza o termina el comentario. Por lo tanto, solo los trígrafos que formarían
Las nuevas líneas que se escapan producen advertencias dentro de un comentario.
Esta opción está implícita en -Pared. Si -Pared no se da, esta opción aún está habilitada
a menos que los trígrafos estén habilitados. Para obtener conversión de trígrafo sin advertencias, pero obtenga
el otro -Pared advertencias, uso -trigrafos -Pared -Wno-trígrafos.
-Wtradicional
Advierte sobre ciertos constructos que se comportan de manera diferente en tradicional e ISO C.También
advertir sobre las construcciones ISO C que no tienen un equivalente tradicional de C, y son problemáticas
constructos que deben evitarse.
-Wundef
Advertir siempre que se encuentre un identificador que no sea una macro en un #Si Directiva,
fuera de se define. Dichos identificadores se reemplazan por cero.
-Macros no utilizados
Advierte sobre macros definidas en el archivo principal que no se utilizan. Una macro es usado si esto es
expandido o probado para su existencia al menos una vez. El preprocesador también advertirá si
la macro no se ha utilizado en el momento en que se redefinió o no se definió.
Macros integradas, macros definidas en la línea de comando y macros definidas en include
los archivos no están advertidos.
Nota: Si realmente se usa una macro, pero solo se usa en bloques condicionales omitidos, entonces
CPP lo informará como no utilizado. Para evitar la advertencia en tal caso, puede mejorar
el alcance de la definición de la macro, por ejemplo, moviéndola a la primera omitida
cuadra. Alternativamente, puede proporcionar un uso ficticio con algo como:
#si se define the_macro_causing_the_warning
#terminara si
-Etiquetas-Wendif
Advertir cada vez que un #else o un #terminara si van seguidos de texto. Esto suele ocurrir en
código del formulario
#si FOO
...
#más FOO
...
#endif
El segundo y tercer "FOO" deben estar en los comentarios, pero a menudo no se encuentran en programas más antiguos.
Esta advertencia está activada de forma predeterminada.
-Error
Convierte todas las advertencias en errores graves. El código fuente que activa las advertencias será
rechazado.
-Wsystem-encabezados
Emitir advertencias para el código en los encabezados del sistema. Estos normalmente no ayudan a encontrar
errores en su propio código, por lo tanto, suprimidos. Si eres responsable del sistema
biblioteca, es posible que desee verlos.
-w Suprima todas las advertencias, incluidas las que GNU CPP emite de forma predeterminada.
-pedante
Emita todos los diagnósticos obligatorios enumerados en el estándar C. Algunos de ellos quedan
de forma predeterminada, ya que se activan con frecuencia en código inofensivo.
-Errores-pedantes
Emita todos los diagnósticos obligatorios y convierta todos los diagnósticos obligatorios en errores.
Esto incluye diagnósticos obligatorios que GCC emite sin -pedante pero trata como
advertencias
-M En lugar de generar el resultado del preprocesamiento, genere una regla adecuada para make
describiendo las dependencias del archivo fuente principal. El preprocesador genera uno
make regla que contiene el nombre del archivo de objeto para ese archivo de origen, dos puntos y los nombres
de todos los archivos incluidos, incluidos los que provienen de -incluir or -imacros mando-
opciones de línea.
A menos que se especifique explícitamente (con -MONTE or -MQ), el nombre del archivo del objeto consta del
nombre del archivo de origen con cualquier sufijo reemplazado con el sufijo del archivo de objeto y con cualquier
Se eliminaron las partes principales del directorio. Si hay muchos archivos incluidos, la regla es
dividir en varias líneas usando \-nueva línea. La regla no tiene comandos.
Esta opción no suprime la salida de depuración del preprocesador, como -dM. Para evitar
mezclando dicha salida de depuración con las reglas de dependencia, debe especificar explícitamente el
archivo de salida de dependencia con -MFo usa una variable de entorno como
DEPENDENCIAS_SALIDA. La salida de depuración aún se enviará al flujo de salida normal como
Normal.
Pasando (Paso) -M para el conductor implica -Ey suprime las advertencias con un implícito -w.
-MM Como -M pero no mencione los archivos de encabezado que se encuentran en los directorios de encabezado del sistema,
ni archivos de encabezado que se incluyen, directa o indirectamente, desde dicho encabezado.
Esto implica que la elección de corchetes angulares o comillas dobles en un #incluir
La directiva no determina en sí misma si ese encabezado aparecerá en -MM
salida de dependencia. Este es un ligero cambio en la semántica de las versiones 3.0 y GCC
más temprano.
-MF presentar
Cuando se usa con -M or -MM, especifica un archivo para escribir las dependencias. Si no -MF
se le da el interruptor, el preprocesador envía las reglas al mismo lugar donde las habría enviado
salida preprocesada.
Cuando se usa con las opciones del controlador -MARYLAND or -MMD, -MF anula la dependencia predeterminada
archivo de salida.
-MG Junto con una opción como -M solicitando generación de dependencia, -MG asume
Los archivos de encabezado que faltan son archivos generados y los agrega a la lista de dependencias sin
levantando un error. El nombre del archivo de dependencia se toma directamente de "#include"
directiva sin anteponer ninguna ruta. -MG también suprime la salida preprocesada, como
El archivo de encabezado que falta hace que esto sea inútil.
Esta función se utiliza en la actualización automática de archivos MAKE.
-MP Esta opción indica a CPP que agregue un objetivo falso para cada dependencia que no sea la
archivo principal, haciendo que cada uno no dependa de nada. Estas reglas ficticias solucionan los errores
make da si elimina los archivos de encabezado sin actualizar el Makefile para igualar.
Esta es la salida típica:
prueba.o: prueba.c prueba.h
prueba.h:
-MONTE dirigidos
Cambie el destino de la regla emitida por la generación de dependencia. Por defecto, el CPP toma
el nombre del archivo de entrada principal, elimina cualquier componente de directorio y cualquier sufijo de archivo
como .cy agrega el sufijo de objeto habitual de la plataforma. El resultado es el objetivo.
An -MONTE La opción establecerá el destino para que sea exactamente la cadena que especifique. Si quieres
múltiples objetivos, puede especificarlos como un único argumento para -MONTE, o use múltiples
-MONTE .
Por ejemplo, -MONTE '$ (objpfx) foo.o' podría dar
$ (objpfx) foo.o: foo.c
-MQ dirigidos
Igual que -MONTE, pero cita cualquier carácter que sea especial para Make.
-MQ '$ (objpfx) foo.o' da
$$ (objpfx) foo.o: foo.c
El objetivo predeterminado se cotiza automáticamente, como si se le diera con -MQ.
-MARYLAND -MARYLAND es equivalente a -M -MF presentar, excepto que -E no está implícito. El conductor
determina presentar basado en si un -o se da la opción. Si es así, el controlador utiliza su
argumento pero con un sufijo de .d, de lo contrario toma el nombre del archivo de entrada,
elimina cualquier componente de directorio y sufijo, y aplica un .d sufijo.
If -MARYLAND se usa junto con -E, alguna -o Se entiende que el interruptor especifica el
archivo de salida de dependencia, pero si se usa sin -E, Cada -o se entiende que especifica un
archivo de objeto de destino.
Since -E no está implícito, -MARYLAND se puede utilizar para generar un archivo de salida de dependencia como un
efecto secundario del proceso de compilación.
-MMD
Como -MARYLAND excepto que solo mencione los archivos de encabezado del usuario, no los archivos de encabezado del sistema.
-x c
-x c ++
-x C objetivo
-x ensamblador-con-cpp
Especifique el idioma de origen: C, C ++, Objective-C o ensamblado. Esto no tiene nada que ver
con cumplimiento de normas o ampliaciones; simplemente selecciona qué sintaxis base
suponer. Si no da ninguna de estas opciones, cpp deducirá el idioma de la
extensión del archivo fuente: .c, . CC, .mo .S. Algunas otras extensiones comunes para
También se reconocen C ++ y ensamblado. Si cpp no reconoce la extensión,
tratará el archivo como C; este es el modo más genérico.
Nota: Las versiones anteriores de cpp aceptaron un -largo opción que seleccionó tanto el
el idioma y el nivel de conformidad con las normas. Esta opción ha sido eliminada porque
entra en conflicto con el -l .
-std =estándar
-ansi
Especifique el estándar al que debe ajustarse el código. Actualmente CPP conoce C
y estándares C ++; otros pueden agregarse en el futuro.
estándar puede ser uno de:
"c90"
"c89"
"iso9899: 1990"
El estándar ISO C de 1990. c90 es la abreviatura habitual para esta versión de
el estandar.
La -ansi opción es equivalente a -std = c90.
"iso9899: 199409"
La norma C de 1990, modificada en 1994.
"iso9899: 1999"
"c99"
"iso9899: 199x"
"c9x"
La norma ISO C revisada, publicada en diciembre de 1999. Antes de su publicación,
era conocido como C9X.
"iso9899: 2011"
"c11"
"c1x"
La norma ISO C revisada, publicada en diciembre de 2011. Antes de su publicación,
era conocido como C1X.
"gnu90"
"gnu89"
El estándar C de 1990 más extensiones GNU. Este es el predeterminado.
"gnu99"
"gnu9x"
El estándar C de 1999 más extensiones GNU.
"gnu11"
"gnu1x"
El estándar C de 2011 más extensiones GNU.
"c ++ 98"
La norma ISO C ++ de 1998 más enmiendas.
"gnu ++ 98"
Lo mismo que -std = c ++ 98 más extensiones GNU. Este es el valor predeterminado para el código C ++.
-I- Divida la ruta de inclusión. Cualquier directorio especificado con -I opciones antes -I- están
buscó solo los encabezados solicitados con "#include"expediente""; no son buscados
"#incluirarchivo> ". Si se especifican directorios adicionales con -I opciones después de la
-I-, esos directorios se buscan para todos #incluir directivas
Además, -I- inhibe el uso del directorio del directorio de archivos actual como
el primer directorio de búsqueda de "#include"expediente"".
Esta opción ha quedado obsoleta.
-nostdinc
No busque archivos de encabezado en los directorios del sistema estándar. Solo los directorios
has especificado con -I opciones (y el directorio del archivo actual, si
apropiado) se buscan.
-nostdinc ++
No busque archivos de encabezado en los directorios estándar específicos de C ++, pero aún así
busque los otros directorios estándar. (Esta opción se usa al compilar C ++
Biblioteca.)
-incluir presentar
Procesos presentar como si "#include" file "" apareciera como la primera línea de la fuente principal
expediente. Sin embargo, el primer directorio buscado presentar ¿Está funcionando el preprocesador?
directorio of el directorio que contiene el archivo fuente principal. Si no se encuentra
allí, se busca en el resto de la cadena de búsqueda "#include" ... "" como
Normal.
Si es múltiple -incluir se dan las opciones, los archivos se incluyen en el orden en que
aparecen en la línea de comando.
-imacros presentar
Exactamente como -incluir, excepto que cualquier salida producida por el escaneo presentar es aventado
lejos. Las macros que define permanecen definidas. Esto le permite adquirir todas las macros
desde un encabezado sin procesar también sus declaraciones.
Todos los archivos especificados por -imacros se procesan antes que todos los archivos especificados por -incluir.
-idirdespués dir
Buscar dir para archivos de encabezado, pero hágalo después de todos los directorios especificados con -I y el
Se han agotado los directorios del sistema estándar. dir se trata como un sistema incluyen
directorio. Si dir comienza con "=", entonces el "=" será reemplazado por el sysroot
prefijo; ver --sysroot y -isysroot.
-iprefijo prefijo
Especificar prefijo como prefijo para los siguientes -icon prefijo opciones. Si el prefijo
representa un directorio, debe incluir el final /.
-icon prefijo dir
-iconprefijoantes dir
Adjuntar dir al prefijo especificado previamente con -iprefijoy agregue el resultado
directorio a la ruta de búsqueda de inclusión. -iconprefijoantes lo pone en el mismo lugar -I
haría; -icon prefijo lo pone donde -idirdespués haría.
-isysroot dir
Esta opción es como la --sysroot opción, pero se aplica solo a los archivos de encabezado (excepto para
Darwin apunta, donde se aplica tanto a archivos de encabezado como a bibliotecas). Ver el
--sysroot opción para obtener más información.
-imultilib dir
Usa dir como subdirectorio del directorio que contiene encabezados de C ++ específicos del destino.
-sistema dir
Buscar dir para archivos de encabezado, después de todos los directorios especificados por -I pero antes del
directorios del sistema estándar. Márquelo como un directorio del sistema, para que obtenga el mismo
tratamiento especial que se aplica a los directorios del sistema estándar.
If dir comienza con "=", luego "=" será reemplazado por el prefijo sysroot; ver
--sysroot y -isysroot.
-Yo cito dir
Buscar dir solo para archivos de encabezado solicitados con "#include"expediente""; no son
buscó "#includearchivo> ", antes de todos los directorios especificados por -I y antes del
directorios del sistema estándar.
If dir comienza con "=", luego "=" será reemplazado por el prefijo sysroot; ver
--sysroot y -isysroot.
-fdirectives-solo
Al preprocesar, maneje las directivas, pero no expanda las macros.
El comportamiento de la opción depende de la -E y -fpreprocesado .
Con -E, el preprocesamiento se limita al manejo de directivas como "#define",
"#ifdef" y "#error". Otras operaciones del preprocesador, como la expansión macro y
no se realizan conversiones de trígrafos. además, el -DD la opción es implícitamente
habilitado
Con -fpreprocesado, la predefinición de la línea de comandos y la mayoría de las macros integradas es
discapacitado. Las macros como "__LINE__", que dependen del contexto, se manejan
normalmente. Esto permite la compilación de archivos previamente procesados con "-E
-fdirectives-only ".
Con ambos -E y -fpreprocesado, las reglas para -fpreprocesado prevalecerán. Esta
permite el preprocesamiento completo de archivos previamente preprocesados con "-E
-fdirectives-only ".
-fdólares-en-identificadores
Aceptar $ en identificadores.
-identificadores-extendidos
Acepte nombres de caracteres universales en identificadores. Esta opción está activada de forma predeterminada
para C99 (y versiones posteriores estándar de C) y C ++.
-fno-canonical-sistema-encabezados
Al preprocesar, no acorte las rutas del encabezado del sistema con la canonicalización.
-fpreprocesado
Indique al preprocesador que el archivo de entrada ya ha sido preprocesado. Esta
suprime elementos como la expansión de macros, la conversión de trígrafos, el empalme de nueva línea escapado,
y procesamiento de la mayoría de las directivas. El preprocesador aún reconoce y elimina
comentarios, para que pueda pasar un archivo preprocesado con -C al compilador sin
problemas. En este modo, el preprocesador integrado es poco más que un tokenizador.
para los extremos frontales.
-fpreprocesado está implícito si el archivo de entrada tiene una de las extensiones .i, .ii or .mi.
Estas son las extensiones que utiliza GCC para archivos preprocesados creados por -guardar-temps.
-ftabstop =anchura
Establezca la distancia entre tabulaciones. Esto ayuda al preprocesador a informar la columna correcta
números en advertencias o errores, incluso si aparecen pestañas en la línea. Si el valor es menor
mayor que 1 o mayor que 100, la opción se ignora. El valor predeterminado es 8.
-fdebug-cpp
Esta opción solo es útil para depurar GCC. Cuando se usa con -E, vuelca la depuración
información sobre mapas de ubicación. Cada token en la salida está precedido por el volcado de
el mapa al que pertenece su ubicación. El volcado del mapa que contiene la ubicación de un token
sería:
{"P": F ; "F": F ; "L": ;"C": ;"S": ;"METRO": ;"MI": , "loc": }
Cuando se usa sin -E, esta opción no tiene ningún efecto.
-ftrack-macro-expansión[=nivel]
Realice un seguimiento de la ubicación de los tokens en las macro expansiones. Esto permite que el compilador emita
diagnóstico sobre la pila de expansión de macros actual cuando se produce un error de compilación en
una macro expansión. El uso de esta opción hace que el preprocesador y el compilador consuman
más memoria. los nivel El parámetro se puede utilizar para elegir el nivel de precisión del token.
seguimiento de ubicación disminuyendo así el consumo de memoria si es necesario. Valor 0 of
nivel desactiva esta opción como si no -ftrack-macro-expansión estuvo presente en
la línea de comando. Valor 1 rastrea las ubicaciones de los tokens en un modo degradado por el bien de
sobrecarga de memoria mínima. En este modo, todos los tokens resultantes de la expansión de un
El argumento de una macro similar a una función tiene la misma ubicación. Valor 2 rastrea tokens
ubicaciones completamente. Este valor es el que más memoria necesita. Cuando se da esta opción
sin argumento, el valor del parámetro predeterminado es 2.
Tenga en cuenta que "-ftrack-macro-expansion = 2" está activado de forma predeterminada.
-fexec-charset =charset
Establezca el juego de caracteres de ejecución, utilizado para constantes de caracteres y cadenas. El valor por defecto
es UTF-8. charset puede ser cualquier codificación compatible con la biblioteca "iconv" del sistema
rutina.
-fwide-exec-charset =charset
Establezca el conjunto de caracteres de ejecución amplia, que se utiliza para cadenas anchas y constantes de caracteres.
El valor predeterminado es UTF-32 o UTF-16, lo que corresponda al ancho de "wchar_t". Como
con -fexec-juego de caracteres, charset puede ser cualquier codificación compatible con el "iconv" del sistema
rutina de la biblioteca; sin embargo, tendrá problemas con codificaciones que no se ajustan
exactamente en "wchar_t".
-finput-charset =charset
Establezca el juego de caracteres de entrada, utilizado para la traducción del juego de caracteres de la entrada.
archivo al juego de caracteres de origen utilizado por GCC. Si la configuración regional no especifica, o GCC
no puede obtener esta información de la configuración regional, el valor predeterminado es UTF-8. Esto puede ser
anulado por la configuración regional o esta opción de línea de comandos. Actualmente el comando-
La opción de línea tiene prioridad si hay un conflicto. charset puede ser cualquier codificación
soportado por la rutina de la biblioteca "iconv" del sistema.
-directorio-de-trabajo
Habilite la generación de marcadores de línea en la salida del preprocesador que permitirá al compilador
conocer el directorio de trabajo actual en el momento del preprocesamiento. Cuando esta opción es
habilitado, el preprocesador emitirá, después del marcador de línea inicial, un segundo marcador de línea
con el directorio de trabajo actual seguido de dos barras. GCC usará esto
directorio, cuando está presente en la entrada preprocesada, como el directorio emitido como
el directorio de trabajo actual en algunos formatos de información de depuración. Esta opcion es
habilitado implícitamente si la información de depuración está habilitada, pero esto se puede inhibir con
la forma negada -directorio-de-trabajo-fno. Si el -P la bandera está presente en el comando
line, esta opción no tiene ningún efecto, ya que no se emiten directivas "#line" en absoluto.
-fno-mostrar-columna
No imprima números de columna en los diagnósticos. Esto puede ser necesario si los diagnósticos son
ser escaneado por un programa que no comprende los números de columna, como
dejagnu.
-A predicado=https://www.youtube.com/watch?v=xB-eutXNUMXJtA&feature=youtu.be
Hacer una afirmación con el predicado predicado y la respuesta https://www.youtube.com/watch?v=xB-eutXNUMXJtA&feature=youtu.be. Esta forma es
preferido a la forma anterior -A predicado(https://www.youtube.com/watch?v=xB-eutXNUMXJtA&feature=youtu.be), que todavía es compatible, porque
no utiliza caracteres especiales de shell.
-A -predicado=https://www.youtube.com/watch?v=xB-eutXNUMXJtA&feature=youtu.be
Cancelar una aserción con el predicado predicado y la respuesta https://www.youtube.com/watch?v=xB-eutXNUMXJtA&feature=youtu.be.
-dCARACTERES
CARACTERES es una secuencia de uno o más de los siguientes caracteres, y no debe ser
precedido de un espacio. Otros caracteres son interpretados por el compilador propiamente dicho, o
reservados para futuras versiones de GCC, por lo que se ignoran silenciosamente. Si especifica
personajes cuyo comportamiento entra en conflicto, el resultado es indefinido.
M En lugar de la salida normal, genere una lista de #definir directivas para todos los
macros definidas durante la ejecución del preprocesador, incluidas las predefinidas
macros. Esto le brinda una forma de averiguar lo que está predefinido en su versión de
el preprocesador. Suponiendo que no tiene archivo foo.h, El comando
tocar foo.h; cpp -dM foo.h
mostrará todas las macros predefinidas.
Si utiliza -dM sin el -E opción, -dM se interpreta como sinónimo de
-fdump-rtl-mach.
D Como M excepto en dos aspectos: lo hace no incluir las macros predefinidas, y
salidas ambas de la forma más #definir directivas y el resultado del preprocesamiento. Ambos tipos
de la salida va al archivo de salida estándar.
N Como D, pero emiten solo los nombres de las macros, no sus expansiones.
I Salida #incluir directivas además del resultado del preprocesamiento.
U Como D excepto que solo las macros que se expanden o cuya definición se prueba
en las directivas del preprocesador, son salidas; la salida se retrasa hasta el uso o
prueba de la macro; y #undef Las directivas también se emiten para macros probadas pero
indefinido en ese momento.
-P Inhibe la generación de marcadores de línea en la salida del preprocesador. Esto podría ser
útil cuando se ejecuta el preprocesador en algo que no es código C, y se enviará
a un programa que podría confundirse con los marcadores de línea.
-C No descarte los comentarios. Todos los comentarios se pasan al archivo de salida, excepto
para comentarios en directivas procesadas, que se eliminan junto con la directiva.
Debe estar preparado para los efectos secundarios al usar -C; hace que el preprocesador
tratar los comentarios como tokens por derecho propio. Por ejemplo, los comentarios que aparecen en el
comienzo de lo que sería una línea directiva tiene el efecto de convertir esa línea en una
línea fuente ordinaria, ya que el primer token en la línea ya no es un #.
-CC No descarte los comentarios, incluso durante la expansión de macros. Esto es como -C, excepto
que los comentarios contenidos en las macros también se pasan al archivo de salida donde
la macro se expande.
Además de los efectos secundarios del -C opción, la -CC opción causa todo estilo C ++
comentarios dentro de una macro para convertirlos en comentarios de estilo C. Esto es para prevenir mas tarde
uso de esa macro de comentar inadvertidamente el resto de la línea fuente.
La -CC La opción se usa generalmente para admitir comentarios de lint.
-cpp-tradicional
Trate de imitar el comportamiento de los preprocesadores C anticuados, a diferencia de ISO C
preprocesadores.
-trigrafos
Procesar secuencias de trígrafos.
-remapear
Habilite el código especial para trabajar con sistemas de archivos que solo permiten archivos muy cortos
nombres, como MS-DOS.
--ayuda
--objetivo-ayuda
Imprima texto que describa todas las opciones de la línea de comandos en lugar de preprocesar nada.
-v Modo detallado. Imprima el número de versión de GNU CPP al comienzo de la ejecución, y
informar la forma final de la ruta de inclusión.
-H Imprima el nombre de cada archivo de encabezado utilizado, además de otras actividades normales. Cada
El nombre está sangrado para mostrar qué tan profundo #incluir apilar es. Encabezado precompilado
los archivos también se imprimen, incluso si se determina que no son válidos; un precompilado no válido
El archivo de encabezado se imprime con ...X y uno válido con ! ... .
-versión
--versión
Imprima el número de versión de GNU CPP. Con un guión, proceda al preprocesamiento como de costumbre.
Con dos guiones, salga inmediatamente.
MEDIO AMBIENTE
Esta sección describe las variables del entorno que afectan el funcionamiento de CPP. Usted puede
Úselos para especificar directorios o prefijos que se usarán al buscar archivos de inclusión, o para
salida de dependencia de control.
Tenga en cuenta que también puede especificar lugares para buscar utilizando opciones como -I, y control
salida de dependencia con opciones como -M. Estos tienen prioridad sobre las variables de entorno,
que a su vez tienen prioridad sobre la configuración de GCC.
CPATH
C_INCLUDE_RUTA
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
El valor de cada variable es una lista de directorios separados por un carácter especial, mucho
como uno TRAYECTORIA, en el que buscar archivos de encabezado. El personaje especial,
"PATH_SEPARATOR", depende del objetivo y se determina en el momento de la compilación de GCC. Para Microsoft
Los destinos basados en Windows es un punto y coma, y para casi todos los demás destinos es un
colon.
CPATH especifica una lista de directorios que se buscarán como si se especificara con -I, pero
después de cualquier camino dado con -I opciones en la línea de comando. Esta variable de entorno
se utiliza independientemente del idioma que se esté preprocesando.
Las variables de entorno restantes se aplican solo al preprocesar el
idioma indicado. Cada uno especifica una lista de directorios que se buscarán como si
especificado con -sistema, pero después de cualquier camino dado con -sistema opciones en el
línea de comando.
En todas estas variables, un elemento vacío indica al compilador que busque su
directorio de trabajo. Los elementos vacíos pueden aparecer al principio o al final de una ruta. Para
ejemplo, si el valor de CPATH es ": / special / include", que tiene el mismo efecto que
-YO. -Yo / especial / incluir.
DEPENDENCIAS_SALIDA
Si se establece esta variable, su valor especifica cómo generar dependencias para Make basado
en los archivos de encabezado que no son del sistema procesados por el compilador. Los archivos de encabezado del sistema son
ignorado en la salida de dependencia.
El valor de DEPENDENCIAS_SALIDA puede ser solo un nombre de archivo, en cuyo caso las reglas de creación
se escriben en ese archivo, adivinando el nombre de destino del nombre del archivo de origen. O la
el valor puede tener la forma presentar dirigidos, en cuyo caso las reglas se escriben en el archivo presentar
usando dirigidos como nombre de destino.
En otras palabras, esta variable de entorno equivale a combinar las opciones -MM
y -MF, con un opcional -MONTE cambiar también.
SUNPRO_DEPENDENCIAS
Esta variable es la misma que DEPENDENCIAS_SALIDA (ver arriba), excepto que el sistema
Los archivos de encabezado no se ignoran, por lo que implica -M más bien que -MM. Sin embargo, las
se omite la dependencia del archivo de entrada principal.
Use aarch64-linux-gnu-cpp en línea usando los servicios de onworks.net