Este é o comando arm-linux-gnueabihf-cpp-4.7 que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online Windows ou emulador online MAC OS
PROGRAMA:
NOME
cpp - o pré-processador C
SINOPSE
cpp [-Dmacro[=definir] ...] [-Umacro]
[-Idir...] [-Eu citodir...]
[-Wavisar...]
[-M|-MILÍMETROS] [-MG] [-MF nome do arquivo]
[-MP] [-MQ alvo...]
[-MT alvo...]
[-P] [-fno-diretório de trabalho]
[-x língua] [-std =padrão]
no arquivo arquivo de saída
Apenas as opções mais úteis são listadas aqui; veja abaixo para o restante.
DESCRIÇÃO
O pré-processador C, frequentemente conhecido como cpp, É um macro processador que é usado automaticamente por
o compilador C para transformar seu programa antes da compilação. É chamado de macro
processador porque permite que você defina macros, que são abreviações breves para mais
constrói.
O pré-processador C deve ser usado apenas com o código-fonte C, C ++ e Objective-C.
No passado, foi usado abusivamente como processador de texto geral. Vai engasgar com a entrada que
não obedece às regras lexicais de C. Por exemplo, apóstrofos serão interpretados como o
início de constantes de caractere e causar erros. Além disso, você não pode confiar nisso
preservação das características da entrada que não são significativas para as línguas da família C.
Se um Makefile for pré-processado, todas as abas rígidas serão removidas, e o Makefile será
não funciona.
Dito isso, muitas vezes você pode usar cpp em coisas que não são C. Outros
Linguagens de programação algol-ish são frequentemente seguras (Pascal, Ada, etc.) Assim como o assembly, com
Cuidado. -tradicional-cpp modo preserva mais espaço em branco e, de outra forma, é mais
permissivo. Muitos dos problemas podem ser evitados escrevendo comentários no estilo C ou C ++
em vez de comentários no idioma nativo, e mantendo as macros simples.
Sempre que possível, você deve usar um pré-processador voltado para a linguagem que você está escrevendo
in. Versões modernas do GNU assembler têm recursos de macro. Nível mais alto
as linguagens de programação têm sua própria compilação condicional e mecanismo de inclusão. Se
tudo o mais falhar, tente um verdadeiro processador de texto geral, como o GNU M4.
Os pré-processadores C variam em alguns detalhes. Este manual discute o pré-processador GNU C, que
fornece um pequeno superconjunto dos recursos do padrão ISO C. Em seu modo padrão, o GNU
O pré-processador C não faz algumas coisas exigidas pelo padrão. Estes são recursos
que raramente, ou nunca, são usados e podem causar mudanças surpreendentes no significado de um
programa que não os espera. Para obter o padrão ISO C estrito, você deve usar o
-std = c90, -std = c99 or -std = c11 opções, dependendo de qual versão do padrão você
quer. Para obter todos os diagnósticos obrigatórios, você também deve usar -pedante.
Este manual descreve o comportamento do pré-processador ISO. Para minimizar o uso gratuito
diferenças, onde o comportamento do pré-processador ISO não entra em conflito com o tradicional
semântica, o pré-processador tradicional deve se comportar da mesma maneira. Os vários
diferenças que existem são detalhadas na seção Tradicional Moda.
Para maior clareza, salvo indicação em contrário, referências a CPP neste manual, consulte GNU CPP.
OPÇÕES
O pré-processador C espera dois nomes de arquivo como argumentos, no arquivo e arquivo de saída. O
pré-processador lê no arquivo junto com quaisquer outros arquivos que ele especifica com #include. Todos
a saída gerada pelos arquivos de entrada combinados é escrita em arquivo de saída.
Ambas no arquivo or arquivo de saída pode ser -, que como no arquivo significa ler a entrada padrão e
as arquivo de saída significa escrever na saída padrão. Além disso, se qualquer um dos arquivos for omitido, isso significa
o mesmo como se - foi especificado para esse arquivo.
Salvo indicação em contrário, ou a opção termina em =, todas as opções que levam um argumento podem
fazer com que esse argumento apareça imediatamente após a opção ou com um espaço entre
opção e argumento: -Ifoo e -I Foo têm o mesmo efeito.
Muitas opções têm nomes com várias letras; portanto, várias opções de uma única letra podem não be
agrupado: -dM é muito diferente de -d -M.
-D nome
Predefinir nome como uma macro, com a definição 1.
-D nome=definição
O conteúdo de definição são tokenizados e processados como se tivessem aparecido durante
fase de tradução três em um #define diretiva. Em particular, a definição será
truncado por caracteres de nova linha incorporados.
Se você está invocando o pré-processador a partir de um shell ou programa semelhante a um shell, você pode precisar
para usar a sintaxe de citação do shell para proteger caracteres como espaços que têm um
significado na sintaxe do shell.
Se você deseja definir uma macro do tipo função na linha de comando, escreva seu argumento
lista com parênteses antes do sinal de igual (se houver). Parênteses são
significativo para a maioria dos shells, portanto, você precisará citar a opção. Com sh e csh,
-D 'nome(args ...)=definição' obras.
-D e -U as opções são processadas na ordem em que são fornecidas na linha de comando. Tudo
-imacros lima e -incluir lima as opções são processadas afinal -D e -U opções.
-U nome
Cancelar qualquer definição anterior de nome, embutido ou fornecido com um -D opção.
-undef
Não predefinir macros específicas do sistema ou específicas do GCC. O padrão predefinido
macros permanecem definidas.
-I dir
Adicione o diretório dir à lista de diretórios a serem pesquisados para arquivos de cabeçalho.
Diretórios nomeados por -I são pesquisados antes que o sistema padrão inclua diretórios.
Se o diretório dir é um diretório de inclusão de sistema padrão, a opção é ignorada para
garantir que a ordem de pesquisa padrão para os diretórios do sistema e o tratamento especial
de cabeçalhos de sistema não são derrotados. Se dir começa com "=", então o "=" será
substituído pelo prefixo sysroot; Vejo --sysroot e -isysroot.
-o lima
Grave a saída para lima. Isso é o mesmo que especificar lima como a segunda não opção
argumento para cpp. gcc tem uma interpretação diferente de um segundo argumento de não opção,
então você deve usar -o para especificar o arquivo de saída.
-Parede
Liga todos os avisos opcionais desejáveis para o código normal. No momento isso
is -Comentário, -Wtrigraphs, -Wmultichar e um aviso sobre promoção de inteiro causando um
mudança de sinal nas expressões "#if". Observe que muitos dos avisos do pré-processador
estão ativados por padrão e não têm opções para controlá-los.
-Comentário
-Wcomentários
Avisar sempre que uma sequência de início de comentário /* aparece em um /* comentário, ou sempre que um
barra invertida-nova linha aparece em um // Comente. (Ambas as formas têm o mesmo efeito.)
-Wtrigraphs
A maioria dos trigraphs nos comentários não pode afetar o significado do programa. No entanto, um
trígrafo que formaria uma nova linha de escape (?? / no final de uma linha) pode, por
alterando onde o comentário começa ou termina. Portanto, apenas trígrafos que formariam
novas linhas escapadas produzem avisos dentro de um comentário.
Esta opção está implícita em -Parede. Se -Parede não é fornecido, esta opção ainda está habilitada
a menos que trigraphs estejam habilitados. Para obter a conversão de trígrafo sem avisos, mas obtenha
o outro -Parede avisos, use -trígrafos -Parede -Wno-trígrafos.
-Wtradicional
Avise sobre certas construções que se comportam de maneira diferente no tradicional e no ISO C. Também
avisar sobre construções ISO C que não têm equivalente C tradicional e problemático
construções que devem ser evitadas.
-Wundef
Avisar sempre que um identificador que não seja uma macro for encontrado em um #E se directiva,
fora de definido. Esses identificadores são substituídos por zero.
-Wunused-macros
Avisar sobre macros definidas no arquivo principal que não são utilizadas. Uma macro é usava se é
expandido ou testado para existência pelo menos uma vez. O pré-processador também irá avisar se
a macro não foi usada no momento em que foi redefinida ou indefinida.
Macros incorporadas, macros definidas na linha de comando e macros definidas em include
os arquivos não são avisados.
Nota: Se uma macro for realmente usada, mas usada apenas em blocos condicionais ignorados, então
O CPP irá reportá-lo como não utilizado. Para evitar o aviso em tal caso, você pode melhorar
o escopo da definição da macro, por exemplo, movendo-a para a primeira
bloquear. Como alternativa, você pode fornecer um uso fictício com algo como:
#if definido the_macro_causing_the_warning
#fim se
-Etiquetas Wendif
Avisar sempre que um #else ou um #fim se são seguidos por texto. Isso geralmente acontece em
código do formulário
#se FOO
...
#elseFOO
...
#endif FOO
O segundo e o terceiro "FOO" devem estar nos comentários, mas geralmente não estão em programas mais antigos.
Este aviso está ativado por padrão.
-Erro
Transforme todos os avisos em erros graves. O código-fonte que aciona os avisos será
rejeitado.
-Wsystem-cabeçalhos
Emita avisos para o código nos cabeçalhos do sistema. Normalmente, eles são inúteis para encontrar
bugs em seu próprio código, portanto suprimidos. Se você é responsável pelo sistema
biblioteca, você pode querer vê-los.
-w Suprime todos os avisos, incluindo aqueles que o GNU CPP emite por padrão.
-pedante
Emita todos os diagnósticos obrigatórios listados no padrão C. Alguns deles são deixados
por padrão, uma vez que eles disparam freqüentemente em código inofensivo.
-erros-pedantes
Emita todos os diagnósticos obrigatórios e transforme todos os diagnósticos obrigatórios em erros.
Isso inclui diagnósticos obrigatórios que o GCC emite sem -pedante mas trata como
avisos.
-M Em vez de produzir o resultado do pré-processamento, produza uma regra adequada para fazer
descrevendo as dependências do arquivo de origem principal. O pré-processador produz um
fazer regra que contém o nome do arquivo de objeto para esse arquivo de origem, dois pontos e os nomes
de todos os arquivos incluídos, incluindo aqueles provenientes de -incluir or -imacros comando
opções de linha.
A menos que especificado explicitamente (com -MT or -MQ), o nome do arquivo do objeto consiste no
nome do arquivo de origem com qualquer sufixo substituído pelo sufixo do arquivo objeto e por qualquer
partes principais do diretório removidas. Se houver muitos arquivos incluídos, a regra é
dividido em várias linhas usando \-nova linha. A regra não tem comandos.
Esta opção não suprime a saída de depuração do pré-processador, como -dM. Evitar
misturando essa saída de depuração com as regras de dependência, você deve especificar explicitamente o
arquivo de saída de dependência com -MFou use uma variável de ambiente como
DEPENDENCES_OUTPUT. A saída de depuração ainda será enviada para o fluxo de saída regular como
normal.
Passagem -M para o motorista implica -E, e suprime avisos com um implícito -w.
-MILÍMETROS Como -M mas não mencione os arquivos de cabeçalho encontrados nos diretórios de cabeçalho do sistema,
nem arquivos de cabeçalho que são incluídos, direta ou indiretamente, de tal cabeçalho.
Isso implica que a escolha de colchetes angulares ou aspas duplas em um #include
diretiva por si só não determina se esse cabeçalho aparecerá em -MILÍMETROS
saída de dependência. Esta é uma pequena mudança na semântica do GCC versões 3.0 e
mais cedo.
-MF lima
Quando usado com -M or -MILÍMETROS, especifica um arquivo para gravar as dependências. Se não -MF
chave é fornecida, o pré-processador envia as regras para o mesmo lugar que teria enviado
saída pré-processada.
Quando usado com as opções do driver -MD or -MMD, -MF substitui a dependência padrão
arquivo de saída.
-MG Em conjunto com uma opção como -M solicitando a geração de dependência, -MG assume
arquivos de cabeçalho ausentes são arquivos gerados e os adiciona à lista de dependências sem
levantando um erro. O nome do arquivo de dependência é obtido diretamente de "#include"
diretiva sem prefixar nenhum caminho. -MG também suprime a saída pré-processada, como um
arquivo de cabeçalho ausente o torna inútil.
Este recurso é usado na atualização automática de makefiles.
-MP Esta opção instrui o CPP a adicionar um alvo falso para cada dependência diferente de
arquivo principal, fazendo com que cada um não dependa de nada. Essas regras fictícias contornam os erros
fazer dá se você remover arquivos de cabeçalho sem atualizar o Makefile para combinar.
Esta é uma saída típica:
teste.o: teste.c teste.h
teste.h:
-MT alvo
Altere o destino da regra emitida pela geração de dependência. Por padrão, o CPP leva
o nome do arquivo de entrada principal, exclui todos os componentes do diretório e qualquer sufixo de arquivo
tais como .ce anexa o sufixo de objeto usual da plataforma. O resultado é o alvo.
An -MT opção irá definir o destino para ser exatamente a string que você especificar. Se você quiser
vários alvos, você pode especificá-los como um único argumento para -MT, ou use vários
-MT opções.
Por exemplo, nos -MT '$ (objpfx) foo.o' pode dar
$ (objpfx) foo.o: foo.c
-MQ alvo
Igual a -MT, mas cita quaisquer caracteres que sejam especiais para o Make.
-MQ '$ (objpfx) foo.o' dá
$$ (objpfx) foo.o: foo.c
O destino padrão é cotado automaticamente, como se fosse fornecido com -MQ.
-MD -MD é equivalente a -M -MF lima, exceto que -E não está implícito. O motorista
determina lima com base em se um -o opção é fornecida. Se for, o driver usa seu
argumento, mas com um sufixo de .d, caso contrário, leva o nome do arquivo de entrada,
remove qualquer componente de diretório e sufixo e aplica um .d sufixo.
If -MD é usado em conjunto com -E, qualquer -o interruptor é entendido para especificar o
arquivo de saída de dependência, mas se usado sem -E, Cada -o é entendido para especificar um
arquivo de objeto de destino.
Como -E não está implícito, -MD pode ser usado para gerar um arquivo de saída de dependência como um
efeito colateral do processo de compilação.
-MMD
Como -MD exceto mencionar apenas os arquivos de cabeçalho do usuário, não os arquivos de cabeçalho do sistema.
-x c
-x c ++
-x objetivo-c
-x montador-com-cpp
Especifique o idioma de origem: C, C ++, Objective-C ou assembly. Isso não tem nada a ver
com conformidade de padrões ou extensões; simplesmente seleciona qual sintaxe base para
Espero. Se você não fornecer nenhuma dessas opções, o cpp irá deduzir o idioma do
extensão do arquivo de origem: .c, . Cc, .mou .S. Algumas outras extensões comuns para
C ++ e assembly também são reconhecidos. Se o cpp não reconhecer a extensão, ele
tratará o arquivo como C; este é o modo mais genérico.
Nota: As versões anteriores do cpp aceitaram um -longo opção que selecionou tanto o
idioma e o nível de conformidade com os padrões. Esta opção foi removida porque
entra em conflito com o -l opção.
-std =padrão
-ansi
Especifique o padrão com o qual o código deve estar em conformidade. Atualmente o CPP sabe sobre C
e padrões C ++; outros podem ser adicionados no futuro.
padrão pode ser um de:
"c90"
"c89"
"iso9899: 1990"
O padrão ISO C de 1990. c90 é a abreviatura usual para esta versão de
o padrão.
A -ansi opção é equivalente a -std = c90.
"iso9899: 199409"
O padrão C de 1990, conforme alterado em 1994.
"iso9899: 1999"
"c99"
"iso9899: 199x"
"c9x"
O padrão ISO C revisado, publicado em dezembro de 1999. Antes da publicação, este
era conhecido como C9X.
"iso9899: 2011"
"c11"
"c1x"
O padrão ISO C revisado, publicado em dezembro de 2011. Antes da publicação, este
era conhecido como C1X.
"gnu90"
"gnu89"
O padrão C de 1990 mais as extensões GNU. Este é o padrão.
"gnu99"
"gnu9x"
O padrão C de 1999 mais as extensões GNU.
"gnu11"
"gnu1x"
O padrão C de 2011 mais as extensões GNU.
"c ++ 98"
O padrão ISO C ++ de 1998 mais emendas.
"gnu ++ 98"
O mesmo que -std = c ++ 98 além de extensões GNU. Este é o padrão para o código C ++.
-I- Divida o caminho de inclusão. Quaisquer diretórios especificados com -I opções antes -I- e guarante que os mesmos estão
pesquisou apenas cabeçalhos solicitados com "#include"Arquivo""; eles não são procurados
"#incluirarquivo> ". Se diretórios adicionais forem especificados com -I opções após o
-I-, esses diretórios são pesquisados por todos #include directivas.
Além disso, -I- inibe o uso do diretório do diretório de arquivo atual como
o primeiro diretório de pesquisa por "#include"Arquivo"".
Esta opção está obsoleta.
-nostdinc
Não pesquise os diretórios do sistema padrão para arquivos de cabeçalho. Apenas os diretórios
você especificou com -I opções (e o diretório do arquivo atual, se
apropriado) são pesquisados.
-nostdinc ++
Não procure por arquivos de cabeçalho nos diretórios padrão específicos de C ++, mas ainda
pesquise os outros diretórios padrão. (Esta opção é usada ao construir o C ++
biblioteca.)
-incluir lima
Extração lima como se "#include" arquivo "" aparecesse como a primeira linha da fonte primária
Arquivo. No entanto, o primeiro diretório procurou por lima é o pré-processador funcionando
anuário em vez disso of o diretório que contém o arquivo de origem principal. Se não for encontrado
lá, ele é pesquisado no restante da cadeia de pesquisa "#include" ... "" como
normal.
Se múltiplo -incluir opções são fornecidas, os arquivos são incluídos na ordem em que
aparecem na linha de comando.
-imacros lima
Exatamente como -incluir, exceto que qualquer saída produzida pela digitalização lima é jogado
longe. As macros que ele define permanecem definidas. Isso permite que você adquira todas as macros
de um cabeçalho sem também processar suas declarações.
Todos os arquivos especificados por -imacros são processados antes de todos os arquivos especificados por -incluir.
-dirijo dir
Pesquisar dir para arquivos de cabeçalho, mas faça isso depois de todos os diretórios especificados com -I e os votos de
os diretórios padrão do sistema foram esgotados. dir é tratado como um sistema inclui
diretório. Se dir começa com "=", então o "=" será substituído pelo sysroot
prefixo; Vejo --sysroot e -isysroot.
-iprefixo prefixo
Especificar prefixo como o prefixo para o subsequente -i com prefixo opções. Se o prefixo
representa um diretório, você deve incluir o final /.
-i com prefixo dir
- com o prefixo antes dir
Acrescentar dir para o prefixo especificado anteriormente com -iprefixo, e adicione o resultado
diretório para incluir o caminho de pesquisa. - com o prefixo antes coloca no mesmo lugar -I
seria; -i com prefixo coloca onde -dirijo seria.
-isysroot dir
Esta opção é como o --sysroot opção, mas se aplica apenas a arquivos de cabeçalho (exceto para
Alvos Darwin, onde se aplica a arquivos de cabeçalho e bibliotecas). Veja o
--sysroot opção para obter mais informações.
-imultilib dir
Use dir como um subdiretório do diretório contendo cabeçalhos C ++ específicos do destino.
-isistema dir
Pesquisar dir para arquivos de cabeçalho, depois de todos os diretórios especificados por -I mas antes do
diretórios de sistema padrão. Marque-o como um diretório do sistema, para que seja o mesmo
tratamento especial aplicado aos diretórios do sistema padrão.
If dir começa com "=", então o "=" será substituído pelo prefixo sysroot; Vejo
--sysroot e -isysroot.
-Eu cito dir
Pesquisar dir apenas para arquivos de cabeçalho solicitados com "#include"Arquivo""; eles não são
procurou por "#includearquivo> ", antes de todos os diretórios especificados por -I e antes do
diretórios de sistema padrão.
If dir começa com "=", então o "=" será substituído pelo prefixo sysroot; Vejo
--sysroot e -isysroot.
-fdirectives-somente
Ao pré-processar, manipule as diretivas, mas não expanda as macros.
O comportamento da opção depende do -E e -processado opções.
Com -E, o pré-processamento é limitado ao tratamento de diretivas como "#define",
"#ifdef" e "#error". Outras operações de pré-processador, como expansão de macro e
conversão trigraph não são realizadas. Além disso, o -dD opção é implicitamente
ativado.
Com -processado, a predefinição da linha de comando e a maioria das macros integradas é
Desativado. Macros como "__LINE__", que são contextualmente dependentes, são manipuladas
normalmente. Isso permite a compilação de arquivos previamente pré-processados com "-E
-fdirectives-only ".
Com ambos -E e -processado, as regras para -processado têm precedência. Esse
permite o pré-processamento completo de arquivos previamente pré-processados com "-E
-fdirectives-only ".
-fdollars-em-identificadores
ACEITAR $ em identificadores.
-identificadores-fextended
Aceite nomes de caracteres universais em identificadores. Esta opção é experimental; em um
versão futura do GCC, ele será habilitado por padrão para C99 e C ++.
-processado
Indique ao pré-processador que o arquivo de entrada já foi pré-processado. Esse
suprime coisas como expansão de macro, conversão de trígrafo, splicing de nova linha de escape,
e processamento da maioria das diretivas. O pré-processador ainda reconhece e remove
comentários, para que você possa passar um arquivo pré-processado com -C para o compilador sem
problemas. Neste modo, o pré-processador integrado é pouco mais do que um tokenizador
para as extremidades frontais.
-processado está implícito se o arquivo de entrada tiver uma das extensões .i, .ii or .mi.
Estas são as extensões que o GCC usa para arquivos pré-processados criados por -save-tempos.
-ftabstop =largura
Defina a distância entre as paradas de tabulação. Isso ajuda o pré-processador a relatar a coluna correta
números em avisos ou erros, mesmo que apareçam guias na linha. Se o valor for menor
que 1 ou maior que 100, a opção é ignorada. O padrão é 8.
-fdebug-cpp
Esta opção só é útil para depurar GCC. Quando usado com -E, depuração de despejos
informações sobre mapas de localização. Cada token na saída é precedido pelo despejo de
o mapa ao qual sua localização pertence. O despejo do mapa contendo a localização de um token
seria:
{"P": F ; "F": F ;"EU": ; "C": ; "S": ; "M": ; "E": , "loc": }
Quando usado sem -E, esta opção não tem efeito.
-ftrack-macro-expansão[=nível]
Rastreie a localização de tokens em expansões de macro. Isso permite que o compilador emita
diagnóstico sobre a pilha de expansão de macro atual quando ocorre um erro de compilação em
uma expansão macro. Usar esta opção faz com que o pré-processador e o compilador consumam
mais memória. o nível parâmetro pode ser usado para escolher o nível de precisão do token
rastreamento de localização diminuindo assim o consumo de memória, se necessário. Valor 0 of
nível desativa esta opção como se não -ftrack-macro-expansão esteve presente em
a linha de comando. Valor 1 rastreia locais de tokens em um modo degradado por causa de
sobrecarga de memória mínima. Neste modo, todos os tokens resultantes da expansão de um
argumento de uma macro do tipo função tem a mesma localização. Valor 2 rastreia tokens
locais completamente. Este valor é o que mais consome memória. Quando esta opção é fornecida
sem argumento, o valor do parâmetro padrão é 2.
-fexec-charset =conjunto de caracteres
Defina o conjunto de caracteres de execução, usado para constantes de string e caracteres. O padrão
é UTF-8. conjunto de caracteres pode ser qualquer codificação compatível com a biblioteca "iconv" do sistema
rotina.
-fwide-exec-charset =conjunto de caracteres
Defina o conjunto de caracteres de execução ampla, usado para cadeias largas e constantes de caracteres.
O padrão é UTF-32 ou UTF-16, o que corresponder à largura de "wchar_t". Como
com -fexec-charset, conjunto de caracteres pode ser qualquer codificação compatível com o "iconv" do sistema
rotina da biblioteca; no entanto, você terá problemas com codificações que não se encaixam
exatamente em "wchar_t".
-finput-charset =conjunto de caracteres
Defina o conjunto de caracteres de entrada, usado para tradução do conjunto de caracteres da entrada
arquivo para o conjunto de caracteres de origem usado pelo GCC. Se a localidade não especificar, ou GCC
não pode obter essas informações do local, o padrão é UTF-8. Isso pode ser
substituído pelo local ou por esta opção de linha de comando. Atualmente o comando
a opção de linha tem precedência se houver um conflito. conjunto de caracteres pode ser qualquer codificação
suportado pela rotina de biblioteca "iconv" do sistema.
-diretório-fworking
Habilita a geração de marcadores de linha na saída do pré-processador que permitirá ao compilador
conhecer o diretório de trabalho atual no momento do pré-processamento. Quando esta opção é
habilitado, o pré-processador irá emitir, após o marcador de linha inicial, um segundo marcador de linha
com o diretório de trabalho atual seguido por duas barras. GCC vai usar isso
diretório, quando está presente na entrada pré-processada, como o diretório emitido como
o diretório de trabalho atual em alguns formatos de informações de depuração. Esta opção é
habilitado implicitamente se as informações de depuração estiverem habilitadas, mas isso pode ser inibido com
a forma negada -fno-diretório de trabalho. Se o -P bandeira está presente no comando
linha, esta opção não tem efeito, uma vez que nenhuma diretiva "#line" é emitida.
-fno-show-coluna
Não imprima os números das colunas nos diagnósticos. Isso pode ser necessário se os diagnósticos forem
sendo verificado por um programa que não entende os números das colunas, como
Dejagnu.
-A predicado=responder
Faça uma afirmação com o predicado predicado e responda responder. Este formulário é
preferido à forma mais antiga -A predicado(responder), que ainda é compatível, porque
não usa caracteres especiais de shell.
-A -predicado=responder
Cancelar uma afirmação com o predicado predicado e responda responder.
-dCHARS
PERSONAGENS é uma sequência de um ou mais dos seguintes caracteres e não deve ser
precedido por um espaço. Outros caracteres são interpretados pelo próprio compilador, ou
reservados para versões futuras do GCC e, portanto, são silenciosamente ignorados. Se você especificar
personagens cujo comportamento conflita, o resultado é indefinido.
M Em vez da saída normal, gere uma lista de #define diretivas para todos os
macros definidas durante a execução do pré-processador, incluindo predefinidas
macros. Isso lhe dá uma maneira de descobrir o que está predefinido em sua versão do
o pré-processador. Supondo que você não tenha nenhum arquivo foo.h, o comando
toque em foo.h; cpp -dM foo.h
irá mostrar todas as macros predefinidas.
Se você usar -dM sem o -E opção, -dM é interpretado como sinônimo de
-fdump-rtl-mach.
D Como M exceto em dois aspectos: não incluem as macros predefinidas e
outputs ambos da #define diretivas e o resultado do pré-processamento. Ambos os tipos
de saída vá para o arquivo de saída padrão.
N Como D, mas emitem apenas os nomes das macros, não suas expansões.
I saída #include além do resultado do pré-processamento.
U Como D exceto que apenas macros que são expandidas, ou cuja definição é testada
nas diretivas do pré-processador, são produzidos; a saída é atrasada até o uso ou
teste da macro; e #undef diretivas também são geradas para macros testadas, mas
indefinido na época.
-P Inibe a geração de marcadores de linha na saída do pré-processador. Isso pode ser
útil ao executar o pré-processador em algo que não é código C, e será enviado
para um programa que pode ser confundido pelos marcadores de linha.
-C Não descarte comentários. Todos os comentários são passados para o arquivo de saída, exceto
para comentários em diretivas processadas, que são suprimidos juntamente com a diretiva.
Você deve estar preparado para os efeitos colaterais ao usar -C; faz com que o pré-processador
tratar comentários como tokens em seu próprio direito. Por exemplo, comentários que aparecem no
início do que seria uma linha diretiva tem o efeito de transformar essa linha em um
linha de origem comum, uma vez que o primeiro token na linha não é mais um #.
-CC Não descarte comentários, inclusive durante a expansão da macro. Isto é como -C, exceto
que os comentários contidos nas macros também são passados para o arquivo de saída, onde
a macro é expandida.
Além dos efeitos colaterais do -C opção, o -CC opção faz com que todo o estilo C ++
comentários dentro de uma macro a serem convertidos em comentários de estilo C. Isso é para prevenir mais tarde
uso dessa macro de comentar inadvertidamente o restante da linha de origem.
A -CC opção geralmente é usada para oferecer suporte a comentários lint.
-tradicional-cpp
Tente imitar o comportamento dos pré-processadores C antiquados, em oposição ao ISO C
pré-processadores.
-trígrafos
Processar sequências de trígrafos.
-remapear
Habilite um código especial para contornar os sistemas de arquivos que só permitem arquivos muito curtos
nomes, como MS-DOS.
--Socorro
--alvo-ajuda
Imprime o texto que descreve todas as opções da linha de comando em vez de pré-processar qualquer coisa.
-v Modo detalhado. Imprima o número da versão do GNU CPP no início da execução e
relatar a forma final do caminho de inclusão.
-H Imprime o nome de cada arquivo de cabeçalho utilizado, além de outras atividades normais. Cada
o nome é recuado para mostrar o quão profundo no #include empilhar é. Cabeçalho pré-compilado
os arquivos também são impressos, mesmo se forem considerados inválidos; um pré-compilado inválido
arquivo de cabeçalho é impresso com ... x e um válido com ! ... .
-versão
--versão
Imprima o número da versão do GNU CPP. Com um traço, prossiga para o pré-processamento normalmente.
Com dois travessões, saia imediatamente.
MEIO AMBIENTE
Esta seção descreve as variáveis de ambiente que afetam o funcionamento do CPP. Você pode
use-os para especificar diretórios ou prefixos a serem usados ao pesquisar arquivos de inclusão, ou para
saída de dependência de controle.
Observe que você também pode especificar lugares para pesquisar usando opções como -I, e controle
saída de dependência com opções como -M. Elas têm precedência sobre as variáveis de ambiente,
que, por sua vez, têm precedência sobre a configuração do GCC.
CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
O valor de cada variável é uma lista de diretórios separados por um caractere especial, muito
como PATH, no qual procurar arquivos de cabeçalho. O personagem especial,
"PATH_SEPARATOR" é dependente do destino e determinado no momento da construção do GCC. Para Microsoft
Alvos baseados no Windows é um ponto e vírgula, e para quase todos os outros alvos é um
cólon.
CPATH especifica uma lista de diretórios a serem pesquisados como se especificados com -I, mas
depois de quaisquer caminhos dados com -I opções na linha de comando. Esta variável de ambiente
é usado independentemente de qual idioma está sendo pré-processado.
As variáveis de ambiente restantes se aplicam apenas ao pré-processamento do
idioma indicado. Cada um especifica uma lista de diretórios a serem pesquisados como se
especificado com -isistema, mas depois de quaisquer caminhos fornecidos com -isistema opções no
linha de comando.
Em todas essas variáveis, um elemento vazio instrui o compilador a pesquisar seu atual
diretório de trabalho. Elementos vazios podem aparecer no início ou no final de um caminho. Para
instância, se o valor de CPATH é ": / especial / incluir", que tem o mesmo efeito que
-EU. -Eu / especial / inclui.
DEPENDENCES_OUTPUT
Se esta variável for definida, seu valor especifica como as dependências de saída para Make com base
nos arquivos de cabeçalho não pertencentes ao sistema processados pelo compilador. Arquivos de cabeçalho do sistema são
ignorado na saída de dependência.
O valor de DEPENDENCES_OUTPUT pode ser apenas um nome de arquivo, caso em que as regras Make
são gravados nesse arquivo, adivinhando o nome de destino a partir do nome do arquivo de origem. Ou o
o valor pode ter a forma lima alvo, caso em que as regras são gravadas em arquivo lima
utilização alvo como o nome do alvo.
Em outras palavras, esta variável de ambiente é equivalente a combinar as opções -MILÍMETROS
e -MF, com um opcional -MT mudar também.
SUNPRO_DEPENDENCIES
Esta variável é a mesma que DEPENDENCES_OUTPUT (veja acima), exceto aquele sistema
arquivos de cabeçalho não são ignorados, o que implica -M em vez de -MILÍMETROS. No entanto, o
a dependência do arquivo de entrada principal é omitida.
Use arm-linux-gnueabihf-cpp-4.7 online usando serviços onworks.net