alpha-linux-gnu-cpp - Online in de cloud

Dit is de opdracht alpha-linux-gnu-cpp die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


cpp - De C Preprocessor

KORTE INHOUD


cpp [-Dmacro[=def]...] [-Umacro]
[-Idir...] [-ikquotedir
[-Wwaarschuwen
[-M|-MM] [-MG] [-MF bestandsnaam]
[- MP] [-MQ doel
[-MT doel
[-P] [-fno-werkmap]
[-x taal] [-standaard=standaard]
in bestand uitbestand

Alleen de meest bruikbare opties worden hier vermeld; zie hieronder voor de rest.

PRODUCTBESCHRIJVING


De C-preprocessor, ook wel bekend als cpp, is een macro processor die automatisch wordt gebruikt door
de C-compiler om uw programma te transformeren voordat het wordt gecompileerd. Het heet een macro
processor omdat u hiermee kunt definiëren macro's, wat korte afkortingen zijn voor een langere tijd
construeert.

De C-preprocessor is bedoeld om alleen te worden gebruikt met C-, C++- en Objective-C-broncode.
In het verleden is het misbruikt als een algemene tekstverwerker. Het zal stikken in de invoer die:
houdt zich niet aan de lexicale regels van C. Zo worden apostrofs geïnterpreteerd als de
begin van karakterconstanten, en fouten veroorzaken. Je kunt er ook niet op vertrouwen
behoud van kenmerken van de invoer die niet significant zijn voor C-familietalen.
Als een Makefile is voorbewerkt, worden alle harde tabbladen verwijderd en zal de Makefile
werkt niet.

Dat gezegd hebbende, kun je vaak wegkomen met het gebruik van cpp voor dingen die geen C zijn. Anders
Algol-achtige programmeertalen zijn vaak veilig (Pascal, Ada, enz.) Net als assemblage, met
voorzichtigheid. -traditionele-cpp modus behoudt meer witruimte en is verder meer
toegeeflijk. Veel van de problemen kunnen worden vermeden door opmerkingen in C- of C++-stijl te schrijven
in plaats van opmerkingen in de moedertaal, en macro's eenvoudig te houden.

Waar mogelijk moet u een preprocessor gebruiken die is afgestemd op de taal waarin u schrijft
in. Moderne versies van de GNU-assembler hebben macrofaciliteiten. Hoogste niveau
programmeertalen hebben hun eigen voorwaardelijke compilatie- en inclusiemechanisme. Indien
al het andere faalt, probeer dan een echte algemene tekstverwerker, zoals GNU M4.

C preprocessors variëren in sommige details. Deze handleiding bespreekt de GNU C preprocessor, die:
biedt een kleine superset van de functies van ISO-standaard C. In de standaardmodus is de GNU
C preprocessor doet niet een paar dingen die door de standaard worden vereist. Dit zijn functies
die zelden of nooit worden gebruikt en verrassende veranderingen kunnen veroorzaken in de betekenis van a
programma dat ze niet verwacht. Om de strikte ISO-norm C te krijgen, moet u de . gebruiken
-standaard=c90, -standaard=c99 or -standaard=c11 opties, afhankelijk van welke versie van de standaard u
wil. Om alle verplichte diagnostiek te krijgen, moet u ook gebruik maken van -pedant.

Deze handleiding beschrijft het gedrag van de ISO-preprocessor. Om onnodig te minimaliseren
verschillen, waarbij het gedrag van de ISO-preprocessor niet in strijd is met traditionele
semantiek zou de traditionele preprocessor zich op dezelfde manier moeten gedragen. De verschillen
verschillen die er zijn, worden beschreven in de sectie traditioneel Mode.

Voor de duidelijkheid, tenzij anders vermeld, verwijzingen naar: CPP in deze handleiding verwijzen naar GNU CPP.

OPTIES


De C-preprocessor verwacht twee bestandsnamen als argumenten, in bestand en uitbestand. De
preprocessor leest in bestand samen met alle andere bestanden die het specificeert met #include. Alle
de uitvoer die wordt gegenereerd door de gecombineerde invoerbestanden wordt geschreven in uitbestand.

Een van beide in bestand or uitbestand kan zijn -, die als in bestand betekent lezen van standaardinvoer en
as uitbestand betekent schrijven naar standaarduitvoer. Als een van beide bestanden wordt weggelaten, betekent dit ook:
hetzelfde als als - was opgegeven voor dat bestand.

Tenzij anders vermeld, of de optie eindigt op =, alle opties waarvoor een argument nodig is, kunnen
laat dat argument ofwel direct na de optie verschijnen, ofwel met een spatie ertussen
optie en argument: -Ifo en -I foo hebben hetzelfde effect.

Veel opties hebben namen van meerdere letters; daarom kunnen meerdere opties van één letter niet be
gegroepeerd: -dM is heel anders dan -d -M.

-D naam
Vooraf definiëren naam als macro, met definitie 1.

-D naam=definitie
De inhoud van definitie worden tokenized en verwerkt alsof ze verschenen tijdens
vertaalfase drie in a #define richtlijn. In het bijzonder zal de definitie zijn:
afgekapt door ingesloten newline-tekens.

Als je de preprocessor aanroept vanuit een shell of shell-achtig programma, heb je misschien nodig:
om de quote-syntaxis van de shell te gebruiken om tekens te beschermen, zoals spaties met een
betekenis in de shell-syntaxis.

Als u een functie-achtige macro op de opdrachtregel wilt definiëren, schrijft u het argument ervan
lijst met omringende haakjes vóór het gelijkteken (indien aanwezig). Haakjes zijn
zinvol voor de meeste shells, dus u moet de optie citeren. Met sh en csh,
-NS'naam(argumenten...)=definitie' werkt.

-D en -U opties worden verwerkt in de volgorde waarin ze op de opdrachtregel worden gegeven. Alle
-imacro's filet en omvatten filet opties worden toch verwerkt -D en -U opties.

-U naam
Annuleer een eerdere definitie van naam, ingebouwd of voorzien van een -D optie.

-ondef
Definieer geen systeemspecifieke of GCC-specifieke macro's. De standaard voorgedefinieerde
macro's blijven gedefinieerd.

-I dir
Voeg de map toe dir naar de lijst met directory's waarin gezocht moet worden naar header-bestanden.

Directory's genoemd door -I worden doorzocht voordat het standaardsysteem mappen bevat.
Als de map dir is een standaard systeem inclusief directory, de optie wordt genegeerd om
ervoor zorgen dat de standaard zoekvolgorde voor systeemmappen en de speciale behandeling
van systeemheaders worden niet verslagen. Indien dir begint met "=", dan wordt "="
vervangen door het sysroot-voorvoegsel; zien --sysroot en -isysroot.

-o filet
Schrijf uitvoer naar filet. Dit is hetzelfde als specificeren filet als de tweede niet-optie
argument voor cpp. gcc een andere interpretatie heeft van een tweede non-optie argument,
dus je moet gebruiken -o om het uitvoerbestand op te geven.

-Muur
Schakelt alle optionele waarschuwingen in die wenselijk zijn voor normale code. op dit moment dit
is -Wcommentaar, -Schrijven, -Wmultichar en een waarschuwing over integer-promotie die a . veroorzaakt
verandering van teken in "#if"-expressies. Merk op dat veel van de waarschuwingen van de preprocessor
zijn standaard ingeschakeld en hebben geen opties om ze te bedienen.

-Wcommentaar
-Wopmerkingen
Waarschuwen wanneer een commentaar-startreeks /* verschijnt in a /* commentaar, of wanneer een
backslash-newline verschijnt in a // opmerking. (Beide vormen hebben hetzelfde effect.)

-Schrijven
De meeste trigraphs in opmerkingen hebben geen invloed op de betekenis van het programma. Echter, een
trigraaf die een ontsnapte nieuwe regel zou vormen (??/ aan het einde van een regel) kan, door
wijzigen waar de opmerking begint of eindigt. Daarom, alleen trigraphs die zouden vormen
escaped newlines produceren waarschuwingen in een opmerking.

Deze optie wordt geïmpliceerd door: -Muur. Indien -Muur is niet gegeven, deze optie is nog steeds ingeschakeld
tenzij trigraphs zijn ingeschakeld. Om trigraph-conversie te krijgen zonder waarschuwingen, maar get
de andere -Muur waarschuwingen, gebruik -trigrafieën -Muur -Wno-trigrafieën.

-Wtraditioneel
Waarschuw voor bepaalde constructies die zich anders gedragen in traditioneel en ISO C. Ook
waarschuwen voor ISO C-constructies die geen traditioneel C-equivalent hebben, en problematisch
constructies die vermeden moeten worden.

-Wundef
Waarschuwen wanneer een identifier die geen macro is, wordt aangetroffen in een #als richtlijn,
buiten gedefinieerd. Dergelijke identifiers worden vervangen door nul.

-Wunused-macro's
Waarschuw voor macro's die in het hoofdbestand zijn gedefinieerd en die niet worden gebruikt. Een macro is gebruikt als het is
minstens één keer uitgebreid of getest op bestaan. De preprocessor waarschuwt ook als:
de macro is niet gebruikt op het moment dat deze opnieuw is gedefinieerd of niet is gedefinieerd.

Ingebouwde macro's, macro's gedefinieerd op de opdrachtregel en macro's gedefinieerd in include
bestanden worden niet gewaarschuwd.

Opmerking: Als een macro daadwerkelijk wordt gebruikt, maar alleen wordt gebruikt in overgeslagen voorwaardelijke blokken, dan
CPP rapporteert het als ongebruikt. Om de waarschuwing in een dergelijk geval te vermijden, zou u kunnen verbeteren
de reikwijdte van de definitie van de macro door deze bijvoorbeeld te verplaatsen naar de eerste overgeslagen
blok. Als alternatief kunt u een dummy-gebruik geven met zoiets als:

#if gedefinieerd the_macro_causing_the_warning
#stop als

-Wendif-labels
Waarschuw wanneer een #anders of #stop als worden gevolgd door tekst. Dit gebeurt meestal in
code van het formulier

#als FOO
...
#anders FOO
...
#endif FOO

De tweede en derde "FOO" zouden in opmerkingen moeten staan, maar staan ​​vaak niet in oudere programma's.
Deze waarschuwing is standaard ingeschakeld.

-fout
Maak van alle waarschuwingen harde fouten. Broncode die waarschuwingen activeert, is:
verworpen.

-Wsysteem-headers
Geef waarschuwingen voor code in systeemheaders. Deze zijn normaal gesproken nutteloos bij het vinden van
bugs in je eigen code, daarom onderdrukt. Als u verantwoordelijk bent voor het systeem:
bibliotheek, wil je ze misschien zien.

-w Onderdruk alle waarschuwingen, inclusief de waarschuwingen die GNU CPP standaard afgeeft.

-pedant
Voer alle verplichte diagnoses uit die in de C-norm worden vermeld. Sommigen van hen zijn overgebleven
standaard uitgeschakeld, omdat ze vaak worden geactiveerd op onschadelijke code.

-pedant-fouten
Geef alle verplichte diagnostiek uit en maak van alle verplichte diagnostiek fouten.
Dit omvat verplichte diagnostiek die GCC uitgeeft zonder -pedant maar behandelt als
waarschuwingen.

-M In plaats van het resultaat van de voorbewerking uit te voeren, voert u een regel uit die geschikt is voor: maken
waarin de afhankelijkheden van het hoofdbronbestand worden beschreven. De preprocessor voert één uit:
maken regel met de naam van het objectbestand voor dat bronbestand, een dubbele punt en de namen
van alle opgenomen bestanden, ook die afkomstig van omvatten or -imacro's opdracht-
lijn opties.

Tenzij expliciet aangegeven (met -MT or -MQ), de bestandsnaam van het object bestaat uit de
naam van het bronbestand met een achtervoegsel vervangen door een achtervoegsel van het objectbestand en met willekeurig
leidende directory-onderdelen verwijderd. Als er veel opgenomen bestanden zijn, is de regel:
splitsen in meerdere regels met behulp van -nieuwe lijn. De regel heeft geen commando's.

Deze optie onderdrukt de foutopsporingsuitvoer van de preprocessor niet, zoals: -dM​ Vermijden
het mengen van dergelijke debug-uitvoer met de afhankelijkheidsregels die u expliciet moet specificeren
afhankelijkheidsuitvoerbestand met -MF, of gebruik een omgevingsvariabele zoals
DEPENDENCIES_OUTPUT. Debug-uitvoer wordt nog steeds naar de reguliere uitvoerstroom verzonden als
Normaal.

Voorbijgaand -M aan de bestuurder impliceert: -Een onderdrukt waarschuwingen met een impliciete -w.

-MM Like -M maar vermeld geen header-bestanden die te vinden zijn in systeemheader-directory's,
noch header-bestanden die direct of indirect uit een dergelijke header zijn opgenomen.

Dit houdt in dat de keuze voor punthaken of dubbele aanhalingstekens in een #include
richtlijn bepaalt op zichzelf niet of die kop zal verschijnen in -MM
afhankelijkheidsoutput. Dit is een kleine wijziging in de semantiek van GCC-versies 3.0 en
eerder.

-MF filet
Bij gebruik bij -M or -MM, specificeert een bestand waarnaar de afhankelijkheden moeten worden geschreven. Als Nee -MF
switch wordt gegeven, de preprocessor stuurt de regels naar dezelfde plaats die hij zou hebben verzonden
voorbewerkte uitvoer.

Bij gebruik met de driveropties -MD or -MMD, -MF overschrijft de standaardafhankelijkheid
uitvoer bestand.

-MG In combinatie met een optie zoals -M het aanvragen van afhankelijkheidsgeneratie, -MG gaat uit van
ontbrekende header-bestanden zijn gegenereerde bestanden en voegt ze toe aan de afhankelijkheidslijst zonder
een fout opwerpen. De bestandsnaam van de afhankelijkheid wordt rechtstreeks overgenomen van de "#include"
richtlijn zonder een pad vooraf te gaan. -MG onderdrukt ook voorbewerkte uitvoer, als a
ontbrekende header-bestand maakt dit nutteloos.

Deze functie wordt gebruikt bij het automatisch bijwerken van makefiles.

- MP Deze optie instrueert CPP om een ​​nep doel toe te voegen voor elke andere afhankelijkheid dan de
main-bestand, waardoor elk van niets afhankelijk is. Deze dummy-regels omzeilen fouten
maken geeft als u headerbestanden verwijdert zonder de . bij te werken Makefile overeenkomen.

Dit is een typische uitvoer:

test.o: test.c test.h

test.h:

-MT doel
Wijzig het doel van de regel die wordt uitgezonden door het genereren van afhankelijkheid. Standaard duurt CPP
de naam van het hoofdinvoerbestand, verwijdert alle directorycomponenten en elk bestandsachtervoegsel
zoals .c, en voegt het gebruikelijke objectachtervoegsel van het platform toe. Het resultaat is het doel.

An -MT optie zal het doel zo instellen dat het exact de tekenreeks is die u opgeeft. Als je wilt
meerdere doelen, kunt u ze als een enkel argument specificeren om -MT, of gebruik meerdere
-MT opties.

Bijvoorbeeld -MT '$(objpfx)foo.o' zou kunnen geven

$(objpfx)foo.o: foo.c

-MQ doel
Hetzelfde als -MT, maar het citeert alle tekens die speciaal zijn om te maken.
-MQ '$(objpfx)foo.o' geeft

$$(objpfx)foo.o: foo.c

Het standaarddoel wordt automatisch aangehaald, alsof het werd gegeven met -MQ.

-MD -MD is gelijk aan -M -MF filet, behalve dat -E wordt niet gesuggereerd. De bestuurder
is cruciaal voor filet op basis van of een -o optie wordt gegeven. Als dat zo is, gebruikt de bestuurder zijn
argument maar met een achtervoegsel van .d, anders krijgt het de naam van het invoerbestand,
verwijdert alle directorycomponenten en suffix, en past a . toe .d achtervoegsel.

If -MD wordt gebruikt in combinatie met -E, ieder -o schakelaar wordt begrepen om de . te specificeren
afhankelijkheidsuitvoerbestand, maar indien gebruikt zonder -EElke -o wordt verstaan ​​om te specificeren a
doelobjectbestand.

Sinds -E wordt niet geïmpliceerd, -MD kan worden gebruikt om een ​​afhankelijkheidsuitvoerbestand te genereren als a
neveneffect van het compilatieproces.

-MMD
Like -MD behalve dat alleen gebruikersheaderbestanden worden vermeld, geen systeemheaderbestanden.

-x c
-x C ++
-x doelstelling C
-x assembler-met-cpp
Geef de brontaal op: C, C++, Objective-C of assembly. Dit heeft niets te maken
met normconformiteit of uitbreidingen; het selecteert alleen welke basissyntaxis moet
verwachten. Als u geen van deze opties geeft, zal cpp de taal afleiden uit de
extensie van het bronbestand: .c, . Cc, .mof .S. Enkele andere veelvoorkomende extensies voor
C++ en assembly worden ook erkend. Als cpp de extensie niet herkent,
zal het bestand behandelen als C; dit is de meest algemene modus.

Opmerking: Eerdere versies van cpp geaccepteerd a -lang optie die zowel de
taal en het conformiteitsniveau van de normen. Deze optie is verwijderd, omdat:
het is in strijd met de -l optie.

-standaard=standaard
-ansi
Specificeer de norm waaraan de code moet voldoen. Momenteel weet CPP over C
en C++-normen; anderen kunnen in de toekomst worden toegevoegd.

standaard kan een van zijn:

"c90"
"c89"
"iso9899:1990"
De ISO C-norm uit 1990. c90 is de gebruikelijke afkorting voor deze versie van
de standaard.

De -ansi optie is gelijk aan -standaard=c90.

"iso9899:199409"
De 1990 C-norm, zoals gewijzigd in 1994.

"iso9899:1999"
"c99"
"iso9899: 199x"
"c9x"
De herziene ISO C-norm, gepubliceerd in december 1999. Vóór publicatie, dit:
stond bekend als C9X.

"iso9899:2011"
"c11"
"c1x"
De herziene ISO C-norm, gepubliceerd in december 2011. Vóór publicatie, dit:
stond bekend als C1X.

"gnu90"
"gnu89"
De 1990 C-standaard plus GNU-extensies. Dit is de standaardinstelling.

"gnu99"
"gnu9x"
De 1999 C-standaard plus GNU-extensies.

"gnu11"
"gnu1x"
De 2011 C-standaard plus GNU-extensies.

"c++98"
De ISO C++-norm uit 1998 plus amendementen.

"gnu++98"
Hetzelfde als -standaard=c++98 plus GNU-extensies. Dit is de standaard voor C++-code.

-IK- Splits het include-pad. Alle mappen gespecificeerd met -I opties voor -IK- zijn
alleen gezocht naar headers gevraagd met "#include"het dossier""; er wordt niet naar gezocht
"#erbij betrekkenbestand>". Als er extra mappen zijn opgegeven met -I opties na de
-IK-, die mappen worden allemaal doorzocht #include richtlijnen.

Daarnaast, -IK- blokkeert het gebruik van de directory van de huidige bestandsdirectory als
de eerste zoekdirectory voor "#include"het dossier"".

Deze optie is afgeschaft.

-nostdinc
Zoek niet in de standaard systeemdirectory's naar headerbestanden. Alleen de mappen
je hebt opgegeven met -I opties (en de map van het huidige bestand, als
geschikt) worden doorzocht.

-nostdinc++
Zoek niet naar header-bestanden in de C++-specifieke standaarddirectories, maar doe toch
zoek in de andere standaardmappen. (Deze optie wordt gebruikt bij het bouwen van de C++
bibliotheek.)

omvatten filet
Proces filet alsof "#include "file"" verscheen als de eerste regel van de primaire bron
het dossier. Echter, de eerste directory waarnaar wordt gezocht filet werkt de preprocessor?
directory verkrijgen in plaats daarvan of de map met het hoofdbronbestand. Indien niet gevonden
daar wordt naar gezocht in de rest van de "#include "...""-zoekketen als
Normaal.

Als er meerdere omvatten opties worden gegeven, worden de bestanden opgenomen in de volgorde waarin ze
verschijnen op de opdrachtregel.

-imacro's filet
Precies zoals omvatten, behalve dat alle uitvoer geproduceerd door scannen filet wordt gegooid
weg. Macro's die het definieert, blijven gedefinieerd. Hiermee kunt u alle macro's verkrijgen
uit een header zonder ook de aangiften ervan te verwerken.

Alle bestanden gespecificeerd door -imacro's worden verwerkt voordat alle bestanden gespecificeerd door omvatten.

-idirna dir
Zoek dir voor header-bestanden, maar doe het na alle mappen gespecificeerd met -I en
standaard systeemdirectory's zijn uitgeput. dir wordt behandeld als een systeem omvatten:
map. Indien dir begint met "=", dan wordt "=" vervangen door de sysroot
voorvoegsel; zien --sysroot en -isysroot.

-ipvoorvoegsel voorvoegsel
Specificeren voorvoegsel als voorvoegsel voor volgende -imetvoorvoegsel opties. Als het voorvoegsel
een map vertegenwoordigt, moet u de laatste . opnemen /.

-imetvoorvoegsel dir
-imetvoorvoegselvoor dir
toevoegen dir naar het voorvoegsel dat eerder is opgegeven met -ipvoorvoegsel, en voeg de resulterende . toe
directory naar het include-zoekpad. -imetvoorvoegselvoor zet het op dezelfde plaats -I
zou; -imetvoorvoegsel zet het waar -idirna zou doen.

-isysroot dir
Deze optie is als de --sysroot optie, maar is alleen van toepassing op header-bestanden (behalve voor
Darwin-doelen, waar het van toepassing is op zowel header-bestanden als bibliotheken). Zie de
--sysroot optie voor meer informatie.

-imultilib dir
Te gebruiken dir als een submap van de map die doelspecifieke C++-headers bevat.

-isysteem dir
Zoek dir voor header-bestanden, na alle mappen gespecificeerd door -I maar voor de
standaard systeemmappen. Markeer het als een systeemmap, zodat het hetzelfde wordt
speciale behandeling zoals wordt toegepast op de standaard systeemdirectory's.

If dir begint met "=", waarna de "=" wordt vervangen door het sysroot-voorvoegsel; zien
--sysroot en -isysroot.

-ikquote dir
Zoek dir alleen voor header-bestanden die zijn aangevraagd met "#include"het dossier""; zij zijn niet
gezocht naar "#includebestand>", voor alle mappen gespecificeerd door -I en voor de
standaard systeemmappen.

If dir begint met "=", waarna de "=" wordt vervangen door het sysroot-voorvoegsel; zien
--sysroot en -isysroot.

-frichtlijnen-alleen
Hanteer richtlijnen bij voorverwerking, maar breid geen macro's uit.

Het gedrag van de optie hangt af van de -E en -fvoorbewerkt opties.

met -E, is de voorbewerking beperkt tot het afhandelen van richtlijnen zoals "#define",
"#ifdef" en "#error". Andere preprocessor-bewerkingen, zoals macro-uitbreiding en
trigraaf conversie worden niet uitgevoerd. tevens de -dd optie is impliciet
ingeschakeld.

met -fvoorbewerkt, voordefinitie van de opdrachtregel en de meeste ingebouwde macro's is
gehandicapt. Macro's zoals "__LINE__", die contextafhankelijk zijn, worden afgehandeld
normaal gesproken. Dit maakt compilatie mogelijk van bestanden die eerder zijn voorbewerkt met "-E
-fdirectives-only".

Met beide -E en -fvoorbewerkt, de regels voor -fvoorbewerkt voorrang krijgen. Dit
maakt volledige voorverwerking mogelijk van bestanden die eerder zijn voorbewerkt met "-E
-fdirectives-only".

-fdollars-in-ID's
Accepteren $ in identificatiegegevens.

-fextended-identifiers
Accepteer universele tekennamen in ID's. Deze optie is standaard ingeschakeld
voor C99 (en latere C-standaardversies) en C++.

-fno-canonieke-systeem-headers
Verkort bij de voorverwerking de systeemkoppaden niet met canonicalisering.

-fvoorbewerkt
Geef aan de preprocessor aan dat het invoerbestand al is voorbewerkt. Dit
onderdrukt zaken als macro-uitbreiding, trigraph-conversie, ontsnapte nieuwe regelsplitsing,
en verwerking van de meeste richtlijnen. De preprocessor herkent en verwijdert nog steeds
opmerkingen, zodat u een bestand kunt doorgeven dat is voorbewerkt met -C naar de compiler zonder
problemen. In deze modus is de geïntegreerde preprocessor niet meer dan een tokenizer
voor de front-ends.

-fvoorbewerkt is impliciet als het invoerbestand een van de extensies heeft .i, .ii or .mi.
Dit zijn de extensies die GCC gebruikt voor voorverwerkte bestanden die zijn gemaakt door -opslaan-temps.

-ftabstop=Breedte
Stel de afstand tussen tabstops in. Dit helpt de preprocessor om de juiste kolom te rapporteren
nummers in waarschuwingen of fouten, zelfs als er tabbladen op de regel verschijnen. Als de waarde kleiner is
dan 1 of groter dan 100, wordt de optie genegeerd. De standaardwaarde is 8.

-fdebug-cpp
Deze optie is alleen nuttig voor het opsporen van fouten in GCC. Bij gebruik met -E, dumpt debuggen
informatie over locatiekaarten. Elk token in de uitvoer wordt voorafgegaan door de dump van
de kaart waartoe de locatie behoort. De dump van de kaart met de locatie van een token
zou zijn:

{"P":F ;"F":F ;"L": ;"C": ;"S": ;"M": ;"E": ,"lok": }

Bij gebruik zonder -E, heeft deze optie geen effect.

-ftrack-macro-uitbreiding[=niveau]
Volg locaties van tokens in macro-uitbreidingen. Hierdoor kan de compiler uitzenden
diagnose over de huidige macro-uitbreidingsstack wanneer een compilatiefout optreedt in
een macro-uitbreiding. Het gebruik van deze optie zorgt ervoor dat de preprocessor en de compiler verbruiken
meer geheugen. De niveau parameter kan worden gebruikt om het precisieniveau van het token te kiezen
locatietracking waardoor het geheugengebruik indien nodig wordt verminderd. Waarde 0 of
niveau deactiveert deze optie net alsof nee -ftrack-macro-uitbreiding was aanwezig op
de opdrachtregel. Waarde 1 volgt tokens-locaties in een gedegradeerde modus omwille van
minimale geheugenoverhead. In deze modus zijn alle tokens die het gevolg zijn van de uitbreiding van een
argument van een functie-achtige macro hebben dezelfde locatie. Waarde 2 volgt tokens
locaties volledig. Deze waarde heeft de meeste geheugenhonger. Wanneer deze optie wordt gegeven
geen argument, de standaard parameterwaarde is 2.

Merk op dat "-ftrack-macro-expansion=2" standaard is geactiveerd.

-fexec-tekenset=karakterset
Stel de uitvoeringstekenset in, die wordt gebruikt voor tekenreeks- en tekenconstanten. De standaard
is UTF-8. karakterset kan elke codering zijn die wordt ondersteund door de "iconv" -bibliotheek van het systeem
routine.

-fwide-exec-charset=karakterset
Stel de tekenset voor brede uitvoering in, die wordt gebruikt voor brede tekenreeksen en tekenconstanten.
De standaardwaarde is UTF-32 of UTF-16, afhankelijk van wat overeenkomt met de breedte van "wchar_t". Als
met -fexec-tekenset, karakterset kan elke codering zijn die wordt ondersteund door de "iconv" van het systeem
bibliotheekroutine; u zult echter problemen krijgen met coderingen die niet passen
precies in "wchar_t".

-finput-tekenset=karakterset
Stel de invoertekenset in, die wordt gebruikt voor vertaling van de tekenset van de invoer
bestand naar de brontekenset die door GCC wordt gebruikt. Als de landinstelling niet specificeert, of GCC
kan deze informatie niet uit de landinstelling halen, de standaardwaarde is UTF-8. Dit kan zijn
overschreven door de landinstelling of deze opdrachtregeloptie. Momenteel is de opdracht-
regeloptie heeft voorrang als er een conflict is. karakterset kan elke codering zijn
ondersteund door de "iconv" bibliotheekroutine van het systeem.

-fworking-map
Activeer het genereren van lijnmarkeringen in de preprocessor-uitvoer waardoor de compiler
ken de huidige werkdirectory op het moment van voorverwerking. Wanneer deze optie is
ingeschakeld, zal de preprocessor, na de eerste lijnmarkering, een tweede lijnmarkering uitzenden
met de huidige werkdirectory gevolgd door twee schuine strepen. GCC zal dit gebruiken
directory, wanneer het aanwezig is in de voorverwerkte invoer, zoals de directory uitgezonden als
de huidige werkdirectory in sommige informatieformaten voor foutopsporing. Deze optie is
impliciet ingeschakeld als foutopsporingsinformatie is ingeschakeld, maar dit kan worden voorkomen met
de ontkende vorm -fno-werkmap. Indien de -P vlag is aanwezig in de opdracht
line, heeft deze optie geen effect, aangezien er geen "#line" instructies worden uitgezonden.

-fno-show-kolom
Druk geen kolomnummers af in diagnostiek. Dit kan nodig zijn als diagnostiek
wordt gescand door een programma dat de kolomnummers niet begrijpt, zoals:
dejagnu.

-A predikaat=beantwoorden
Maak een bewering met het predikaat predikaat en antwoord beantwoorden. Dit formulier is
voorkeur boven de oudere vorm -A predikaat(beantwoorden), die nog steeds wordt ondersteund, omdat het
gebruikt geen speciale shell-tekens.

-A -predikaat=beantwoorden
Annuleer een bewering met het predikaat predikaat en antwoord beantwoorden.

-dCHARS
KOSTEN is een reeks van een of meer van de volgende tekens, en mag niet zijn
voorafgegaan door een spatie. Andere karakters worden geïnterpreteerd door de eigenlijke compiler, of
gereserveerd voor toekomstige versies van GCC, en worden dus stilzwijgend genegeerd. Als u opgeeft:
karakters wiens gedrag conflicteert, het resultaat is ongedefinieerd.

M Genereer in plaats van de normale uitvoer een lijst met: #define richtlijnen voor alle
macro's gedefinieerd tijdens de uitvoering van de preprocessor, inclusief voorgedefinieerde
macro's. Dit geeft u een manier om erachter te komen wat vooraf is gedefinieerd in uw versie van
de preprocessor. Ervan uitgaande dat je geen bestand hebt foo.h, het bevel

raak foo.h aan; cpp -dM foo.h

toont alle vooraf gedefinieerde macro's.

Als u gebruik maken van -dM zonder de -E keuze, -dM wordt geïnterpreteerd als een synoniem voor
-fdump-rtl-mach.

D Like M behalve in twee opzichten: het doet niet de vooraf gedefinieerde macro's opnemen, en het
uitgangen zowel the #define richtlijnen en het resultaat van de voorbewerking. beide soorten
van uitvoer ga naar het standaard uitvoerbestand.

N Like D, maar zend alleen de macronamen uit, niet hun uitbreidingen.

I uitgang #include richtlijnen naast het resultaat van de voorbewerking.

U Like D behalve dat alleen macro's die zijn uitgevouwen of waarvan de definitie is getest
in preprocessor-richtlijnen worden uitgevoerd; de uitvoer wordt vertraagd tot het gebruik of
test van de macro; en #undef richtlijnen worden ook uitgevoerd voor geteste macro's, maar
destijds ongedefinieerd.

-P Verhinder het genereren van lijnmarkeringen in de uitvoer van de preprocessor. Dit zou kunnen zijn
handig bij het uitvoeren van de preprocessor op iets dat geen C-code is, en zal worden verzonden
naar een programma dat kan worden verward door de lijnmarkeringen.

-C Gooi opmerkingen niet weg. Alle opmerkingen worden doorgegeven aan het uitvoerbestand, behalve:
voor opmerkingen in verwerkte richtlijnen, die samen met de richtlijn worden verwijderd.

U moet voorbereid zijn op bijwerkingen bij gebruik -C; het zorgt ervoor dat de preprocessor
behandel opmerkingen als op zichzelf staande tokens. Opmerkingen die bijvoorbeeld verschijnen op de
begin van wat een richtlijn zou zijn, heeft tot gevolg dat die regel verandert in een
gewone bronregel, aangezien het eerste token op de regel niet langer een is #.

-CC Gooi geen opmerkingen weg, ook niet tijdens macro-uitbreiding. Dit is zoals -C, behalve
dat opmerkingen in macro's ook worden doorgegeven aan het uitvoerbestand waar
de macro wordt uitgevouwen.

Naast de bijwerkingen van de -C optie, de -CC optie veroorzaakt alle C++-stijl
opmerkingen in een macro die moeten worden geconverteerd naar opmerkingen in C-stijl. Dit is om later te voorkomen
gebruik van die macro om onbedoeld commentaar te geven op de rest van de bronregel.

De -CC optie wordt over het algemeen gebruikt om lint-opmerkingen te ondersteunen.

-traditionele-cpp
Probeer het gedrag van ouderwetse C-preprocessors te imiteren, in tegenstelling tot ISO C
voorverwerkers.

-trigrafieën
Trigraph-reeksen verwerken.

-opnieuw toewijzen
Schakel speciale code in om bestandssystemen te omzeilen die alleen zeer korte bestanden toestaan
namen, zoals MS-DOS.

--help
--doel-hulp
Druk tekst af die alle opdrachtregelopties beschrijft in plaats van iets voor te verwerken.

-v Uitgebreide modus. Druk het versienummer van GNU CPP af aan het begin van de uitvoering, en
rapporteer de definitieve vorm van het include-pad.

-H Druk de naam af van elk gebruikt headerbestand, naast andere normale activiteiten. Elk
naam is ingesprongen om aan te geven hoe diep in de #include stapel is het. Voorgecompileerde kop
bestanden worden ook afgedrukt, zelfs als ze ongeldig blijken te zijn; een ongeldige voorgecompileerde
header-bestand wordt afgedrukt met ...X en een geldige met ...! .

-versie
--versie
Print het versienummer van GNU CPP uit. Ga met één streepje door met voorbewerken zoals normaal.
Met twee streepjes, verlaat onmiddellijk.

MILIEU


In deze sectie worden de omgevingsvariabelen beschreven die van invloed zijn op de werking van CPP. Jij kan
gebruik ze om mappen of voorvoegsels op te geven die moeten worden gebruikt bij het zoeken naar include-bestanden, of om
controle afhankelijkheid output.

Merk op dat u ook plaatsen kunt specificeren om te zoeken met behulp van opties zoals -I, en controle
afhankelijkheidsuitvoer met opties zoals -M. Deze hebben voorrang op omgevingsvariabelen,
die op hun beurt voorrang hebben op de configuratie van GCC.

CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
De waarde van elke variabele is een lijst met mappen gescheiden door een speciaal teken, veel
als PATH, waarin u naar headerbestanden kunt zoeken. Het bijzondere karakter,
"PATH_SEPARATOR", is doelafhankelijk en wordt bepaald tijdens het bouwen van de GCC. Voor Microsoft
Op Windows gebaseerde doelen is het een puntkomma, en voor bijna alle andere doelen is het een
dikke darm.

CPATH specificeert een lijst met te doorzoeken mappen alsof deze is opgegeven met -I, Maar
na alle paden gegeven met -I opties op de opdrachtregel. Deze omgevingsvariabele
wordt gebruikt, ongeacht welke taal wordt voorbewerkt.

De overige omgevingsvariabelen zijn alleen van toepassing bij het voorbewerken van de specifieke
taal aangegeven. Elk specificeert een lijst met mappen die moeten worden doorzocht alsof
gespecificeerd met -isysteem, maar na alle paden gegeven met -isysteem opties op de
opdrachtregel.

In al deze variabelen instrueert een leeg element de compiler om zijn huidige . te doorzoeken
werkmap. Lege elementen kunnen aan het begin of einde van een pad verschijnen. Voor
bijvoorbeeld, als de waarde van CPATH is ":/special/include", dat hetzelfde effect heeft als
-IK. -Ik/speciaal/omvat.

DEPENDENCIES_OUTPUT
Als deze variabele is ingesteld, specificeert de waarde ervan hoe afhankelijkheden moeten worden uitgevoerd voor Make based
op de niet-systeemheaderbestanden die door de compiler worden verwerkt. Systeemkopbestanden zijn
genegeerd in de afhankelijkheidsuitvoer.

De waarde van DEPENDENCIES_OUTPUT kan gewoon een bestandsnaam zijn, in welk geval de Make-regels
worden naar dat bestand geschreven, waarbij de doelnaam wordt geraden uit de naam van het bronbestand. Of de
waarde kan de vorm hebben filet doel, in welk geval de regels naar het bestand worden geschreven filet
gebruik doel als de doelnaam.

Met andere woorden, deze omgevingsvariabele is gelijk aan het combineren van de opties -MM
en -MF, met een optionele -MT schakelen ook.

SUNPRO_DEPENDENCIES
Deze variabele is hetzelfde als DEPENDENCIES_OUTPUT (zie hierboven), behalve dat systeem
header-bestanden worden niet genegeerd, dus het impliceert: -M dan -MM. Echter, de
afhankelijkheid van het hoofdinvoerbestand wordt weggelaten.

Gebruik alpha-linux-gnu-cpp online met behulp van onworks.net-services



Nieuwste Linux & Windows online programma's