Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

mips-linux-gnu-cpp — online w chmurze

Uruchom mips-linux-gnu-cpp u dostawcy bezpłatnego hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

Jest to polecenie mips-linux-gnu-cpp, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks, korzystając z jednej z naszych wielu darmowych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online Windows lub emulator online systemu Mac OS

PROGRAM:

IMIĘ


cpp - Preprocesor języka C

STRESZCZENIE


cpp [-Dmakro[=zdefiniuj]...] [-Umakro]
[-Ireż...] [-Cytujęreż...]
[-Wostrzec...]
[-M|-MM] [-MG] [-MF filename]
[-POSEŁ] [-MQ cel...]
[-MT cel...]
[-P] [-fno-katalog-roboczy]
[-x język] [-std=standard]
w pliku plik wyjściowy

Tutaj wymieniono tylko najbardziej przydatne opcje; patrz poniżej dla reszty.

OPIS


Preprocesor C, często znany jako Cpp, Jest makro edytor który jest używany automatycznie przez
kompilator C do przekształcenia programu przed kompilacją. Nazywa się to makro
procesor, ponieważ pozwala zdefiniować makra, które są skrótami na dłużej
konstrukcje.

Preprocesor C jest przeznaczony do użytku tylko z kodem źródłowym C, C++ i Objective-C.
W przeszłości był nadużywany jako ogólny procesor tekstu. Zadławi się na wejściu, które
nie przestrzega zasad leksykalnych języka C. Na przykład apostrofy będą interpretowane jako
początek stałych znakowych i powodują błędy. Nie możesz też na tym polegać
zachowanie cech wejściowych, które nie są istotne dla języków z rodziny C.
Jeśli plik Makefile jest wstępnie przetworzony, wszystkie twarde zakładki zostaną usunięte, a plik Makefile będzie
nie działa.

To powiedziawszy, często można używać cpp do rzeczy, które nie są C. Inne
Algolowe języki programowania są często bezpieczne (Pascal, Ada itp.) Podobnie jak asembler, z
ostrożność. -tradycyjny-cpp tryb zachowuje więcej białych przestrzeni, a poza tym jest bardziej
dozwalający. Wielu problemów można uniknąć, pisząc komentarze w stylu C lub C++
zamiast komentarzy w języku ojczystym i utrzymywania prostych makr.

Jeśli to możliwe, powinieneś używać preprocesora dostosowanego do języka, który piszesz
w. Nowoczesne wersje asemblera GNU mają funkcje makr. Najwyższy poziom
języki programowania mają swój własny mechanizm warunkowej kompilacji i włączania. Gdyby
wszystko inne zawodzi, wypróbuj prawdziwy ogólny procesor tekstu, taki jak GNU M4.

Preprocesory C różnią się w niektórych szczegółach. W tym podręczniku omówiono preprocesor GNU C, który:
zapewnia mały nadzbiór funkcji standardu ISO C. W trybie domyślnym GNU
Preprocesor C nie robi kilku rzeczy wymaganych przez standard. To są cechy
które są rzadko, jeśli w ogóle, używane i mogą powodować zaskakujące zmiany w znaczeniu a
program, który ich nie oczekuje. Aby uzyskać ścisłą normę ISO C, powinieneś użyć
-std=c90, -std=c99 or -std=c11 opcje, w zależności od wersji standardu
chcieć. Aby uzyskać całą obowiązkową diagnostykę, musisz również użyć -pedantyczny.

Ten podręcznik opisuje zachowanie preprocesora ISO. Aby zminimalizować nieuzasadnione
różnice, gdzie zachowanie preprocesora ISO nie koliduje z tradycyjnym
semantyki, tradycyjny preprocesor powinien zachowywać się w ten sam sposób. Różnorodny
różnice, które istnieją, są szczegółowo opisane w sekcji tradycyjny Moda.

Dla jasności, o ile nie zaznaczono inaczej, odniesienia do CPP w tym podręczniku odnieś się do GNU CPP.

OPCJE


Preprocesor C oczekuje dwóch nazw plików jako argumentów, w pliku i plik wyjściowy,
odczyt preprocesora w pliku wraz z wszelkimi innymi plikami, które określa z #zawierać. Wszystko
dane wyjściowe generowane przez połączone pliki wejściowe są zapisywane w plik wyjściowy.

Bądź w pliku or plik wyjściowy może być -, który jako w pliku oznacza czytanie ze standardowego wejścia i
as plik wyjściowy oznacza pisanie na standardowe wyjście. Ponadto, jeśli któryś z plików zostanie pominięty, oznacza to
tak samo jak gdyby - został określony dla tego pliku.

O ile nie zaznaczono inaczej lub opcja kończy się na =, wszystkie opcje, które przyjmują argument, mogą:
niech ten argument pojawia się albo bezpośrednio po opcji, albo ze spacją między
opcja i argument: -Jeżeli i -I bla mają ten sam efekt.

Wiele opcji ma nazwy wieloliterowe; dlatego wiele opcji jednoliterowych może nie be
zgrupowane: -dM jest bardzo różny od -d -M.

-D Nazwa
Wstępnie zdefiniować Nazwa jako makro, z definicją 1.

-D Nazwa=definicja
Zawartość definicja są tokenizowane i przetwarzane tak, jakby pojawiły się w trakcie
faza translacji trzecia w a #definiować dyrektywa. W szczególności definicja będzie
obcięte przez osadzone znaki nowego wiersza.

Jeśli wywołujesz preprocesor z powłoki lub programu podobnego do powłoki, możesz potrzebować
używać składni cytowania powłoki do ochrony znaków, takich jak spacje, które mają
znaczenie w składni powłoki.

Jeśli chcesz zdefiniować makro podobne do funkcji w wierszu poleceń, napisz jego argument
lista z otaczającymi nawiasami przed znakiem równości (jeśli istnieje). Nawiasy są
ma znaczenie dla większości powłok, więc musisz zacytować tę opcję. Z sh i csh,
-D'Nazwa(argumenty...)=definicja' działa.

-D i -U opcje są przetwarzane w kolejności podanej w wierszu poleceń. Wszystko
-makros filet i -zawierać filet opcje są w końcu przetwarzane -D i -U opcje.

-U Nazwa
Anuluj poprzednią definicję Nazwa, wbudowane lub wyposażone w -D opcja.

-niedef
Nie predefiniuj żadnych makr specyficznych dla systemu lub GCC. Wstępnie zdefiniowany standard
makra pozostają zdefiniowane.

-I reż
Dodaj katalog reż do listy katalogów do przeszukania plików nagłówkowych.

Katalogi nazwane przez -I są przeszukiwane przed standardowym systemem zawierającym katalogi.
Jeśli katalog reż to standardowy system zawierający katalog, opcja jest ignorowana, aby
upewnij się, że domyślna kolejność wyszukiwania katalogów systemowych i specjalne traktowanie
nagłówków systemowych nie zostanie pokonanych. Gdyby reż zaczyna się od „=”, następnie „=” będzie
zastąpiony przedrostkiem sysroot; zobaczyć --główny system i -isysroot.

-o filet
Zapisz dane wyjściowe do filet. To to samo, co określanie filet jako drugi brak opcji
argument drugi Cpp. gcc ma inną interpretację drugiego argumentu nieopcji,
więc musisz użyć -o aby określić plik wyjściowy.

-Ściana
Włącza wszystkie opcjonalne ostrzeżenia, które są pożądane dla normalnego kodu. Obecnie to
is -Wkomentarz, -Wtrygrafy, -Wwieloznakowy i ostrzeżenie o promocji liczby całkowitej powodującej
zmiana znaku w wyrażeniach "#if". Zauważ, że wiele ostrzeżeń preprocesora
są domyślnie włączone i nie mają możliwości ich kontrolowania.

-Wkomentarz
-Wkomentarze
Ostrzegaj, gdy rozpoczyna się sekwencja komentarza /* pojawia się w /* komentarz, lub kiedy
odwrotny ukośnik-nowa linia pojawia się w // komentarz. (Obie formy mają ten sam efekt.)

-Wtrygrafy
Większość trigrafów w komentarzach nie może wpływać na znaczenie programu. Jednak
trigraf, który utworzyłby znak nowej linii ze znakami ucieczki (??/ na końcu wiersza) może, by
zmiana miejsca rozpoczęcia lub zakończenia komentarza. Dlatego tylko trygrafy, które by się utworzyły
Znaki nowej linii ze znakami ucieczki generują ostrzeżenia wewnątrz komentarza.

Ta opcja jest implikowana przez -Ściana. Jeśli -Ściana nie podano, ta opcja jest nadal włączona
chyba że trigrafy są włączone. Aby uzyskać konwersję trygrafu bez ostrzeżeń, ale uzyskaj
Inne -Ściana ostrzeżenia, użyj -trygrafy -Ściana -Wno-trygrafy.

-Wtradycyjne
Ostrzegaj o pewnych konstrukcjach, które zachowują się inaczej w tradycyjnym i ISO C. Również
ostrzegaj o konstrukcjach ISO C, które nie mają tradycyjnego odpowiednika w C i są problematyczne
konstrukty, których należy unikać.

-Wundefa
Ostrzegaj w przypadku napotkania identyfikatora, który nie jest makrem w #Jeśli dyrektywy,
poza zdefiniowane. Takie identyfikatory są zastępowane zerem.

-Wunused-makra
Ostrzegaj o nieużywanych makrach zdefiniowanych w pliku głównym. Makro to używany Jeśli to jest
rozszerzona lub przynajmniej raz przetestowana pod kątem istnienia. Preprocesor wyświetli również ostrzeżenie, jeśli:
makro nie było używane w momencie przedefiniowania lub niezdefiniowania.

Wbudowane makra, makra zdefiniowane w wierszu poleceń i makra zdefiniowane w include
pliki nie są ostrzegane.

Uwaga: Jeśli makro jest faktycznie używane, ale używane tylko w pominiętych blokach warunkowych, to
CPP zgłosi go jako nieużywany. Aby uniknąć ostrzeżenia w takim przypadku, możesz poprawić
zakres definicji makra poprzez np. przeniesienie go do pierwszego pominiętego
blok. Alternatywnie możesz zapewnić fikcyjną funkcję z czymś takim jak:

#jeśli zdefiniowano_makro_powodujące_ostrzeżenie
#endif

-Etykiety Wendif
Ostrzegaj, gdy #else lub #endif następuje tekst. Zwykle dzieje się to w
kod formularza

#jeśli GŁUPIA
...
#inny FOO
...
#endif foo

Drugi i trzeci „FOO” powinien być w komentarzach, ale często nie ma go w starszych programach.
To ostrzeżenie jest domyślnie włączone.

-Błąd
Przekształć wszystkie ostrzeżenia w twarde błędy. Kod źródłowy, który wyzwala ostrzeżenia, będzie
odrzucone

-Wsystem-nagłówki
Ostrzeżenia dotyczące kodu w nagłówkach systemowych. Zwykle nie są one pomocne w znalezieniu
błędy we własnym kodzie, dlatego są pomijane. Jeśli jesteś odpowiedzialny za system
bibliotekę, możesz chcieć je zobaczyć.

-w Pomiń wszystkie ostrzeżenia, w tym te, które domyślnie wydaje GNU CPP.

-pedantyczny
Wydaj całą obowiązkową diagnostykę wymienioną w standardzie C. Część z nich została
domyślnie wyłączone, ponieważ często uruchamiają się na nieszkodliwym kodzie.

-pedantyczne-błędy
Wydaj całą obowiązkową diagnostykę i zamień całą obowiązkową diagnostykę na błędy.
Obejmuje to obowiązkową diagnostykę, której GCC wydaje bez -pedantyczny ale traktuje jako
ostrzeżenia.

-M Zamiast wyprowadzać wynik przetwarzania wstępnego, wypisz regułę odpowiednią dla robić
opisujący zależności głównego pliku źródłowego. Preprocesor wyprowadza jeden
robić reguła zawierająca nazwę pliku obiektowego dla tego pliku źródłowego, dwukropek i nazwy
wszystkich dołączonych plików, w tym pochodzących z -zawierać or -makros Komenda-
opcje linii.

O ile nie określono wyraźnie (z -MT or -MQ), nazwa pliku obiektu składa się z
nazwa pliku źródłowego z dowolnym sufiksem zastąpionym sufiksem pliku obiektowego i dowolnym
usunięto wiodące części katalogu. Jeśli jest wiele dołączonych plików, reguła brzmi:
podziel na kilka linii za pomocą \-Nowa linia. Reguła nie ma poleceń.

Ta opcja nie blokuje danych wyjściowych debugowania preprocesora, takich jak -dM. Unikać
mieszając takie dane wyjściowe debugowania z regułami zależności, należy wyraźnie określić
plik wyjściowy zależności z -MFlub użyj zmiennej środowiskowej, takiej jak
DEPENDENCIES_OUTPUT. Dane wyjściowe debugowania będą nadal wysyłane do zwykłego strumienia wyjściowego, ponieważ
Normal.

Przechodzący -M do kierowcy sugeruje -Ei pomija ostrzeżenia z niejawnym -w.

-MM Jak -M ale nie wspominaj o plikach nagłówkowych, które znajdują się w systemowych katalogach nagłówkowych,
ani pliki nagłówkowe, które są dołączone bezpośrednio lub pośrednio z takiego nagłówka.

Oznacza to, że wybór nawiasów ostrych lub cudzysłowów w an #zawierać
dyrektywa sama w sobie nie określa, czy ten nagłówek pojawi się w -MM
wyjście zależności. Jest to niewielka zmiana semantyki w stosunku do wersji GCC 3.0 i
wcześniej.

-MF filet
Kiedy jest używany z -M or -MM, określa plik do zapisania zależności. Jeśli nie -MF
przełącznik otrzymuje preprocesor wysyła reguły w to samo miejsce, w którym by wysłał
wstępnie przetworzone dane wyjściowe.

W przypadku korzystania z opcji sterownika -MD or -MMD, -MF nadpisuje domyślną zależność
plik wyjściowy.

-MG W połączeniu z opcją taką jak -M żądanie generowania zależności, -MG zakłada
brakujące pliki nagłówkowe są plikami generowanymi i dodaje je do listy zależności bez
zgłaszanie błędu. Nazwa pliku zależności jest pobierana bezpośrednio z „#include”
dyrektywy bez poprzedzania żadnej ścieżki. -MG tłumi również wstępnie przetworzone dane wyjściowe, ponieważ a
brakujący plik nagłówkowy czyni to bezużytecznym.

Ta funkcja jest używana w automatycznej aktualizacji plików makefile.

-POSEŁ Ta opcja nakazuje CPP dodanie fałszywego celu dla każdej zależności innej niż
głównego pliku, powodując, że każdy z nich nie jest zależny od niczego. Te fałszywe reguły omijają błędy
robić daje, jeśli usuniesz pliki nagłówkowe bez aktualizacji Makefile pasować.

To jest typowy wynik:

test.o: test.c test.h

test.h:

-MT cel
Zmień cel reguły emitowany przez generowanie zależności. Domyślnie CPP trwa
nazwa głównego pliku wejściowego, usuwa wszystkie składniki katalogu i dowolny przyrostek pliku
jak na przykład .ci dołącza zwykły sufiks obiektu platformy. Rezultatem jest cel.

An -MT opcja ustawi cel na dokładnie taki ciąg znaków. Jeśli chcesz
wiele celów, możesz określić je jako pojedynczy argument, aby -MTlub użyj wielu
-MT opcje.

Na przykład, -MT '$(objpfx)foo.o' może dać

$(objpfx)foo.o: foo.c

-MQ cel
Taki sam jak -MT, ale cytuje wszystkie znaki, które są specjalne dla programu Make.
-MQ '$(objpfx)foo.o' daje

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

Domyślny cel jest automatycznie cytowany, tak jakby został podany z -MQ.

-MD -MD odpowiada -M -MF filet, oprócz tego -E nie jest dorozumiana. Kierowca
określa filet na podstawie tego, czy -o podana jest opcja. Jeśli tak, kierowca używa swojego
argument, ale z sufiksem .d, w przeciwnym razie przyjmuje nazwę pliku wejściowego,
usuwa wszystkie składniki katalogu i przyrostki oraz stosuje a .d przyrostek.

If -MD jest używany w połączeniu z -E, dowolne -o przełącznik jest rozumiany jako określenie
plik wyjściowy zależności, ale jeśli jest używany bez -E, każdy -o rozumie się jako określenie
docelowy plik obiektu.

Ponieważ -E nie jest dorozumiana, -MD może być użyty do wygenerowania pliku wyjściowego zależności jako
efekt uboczny procesu kompilacji.

-MMD
Jak -MD z wyjątkiem wymieniania tylko plików nagłówkowych użytkownika, a nie systemowych plików nagłówkowych.

-x c
-x c ++
-x cel C
-x assembler-z-cpp
Określ język źródłowy: C, C++, Objective-C lub zestaw. To nie ma nic wspólnego
ze zgodnością z normami lub rozszerzeniami; wybiera jedynie podstawową składnię do
oczekiwać. Jeśli nie podasz żadnej z tych opcji, cpp wydedukuje język z
rozszerzenie pliku źródłowego: .c, . DC, .mlub .S. Niektóre inne popularne rozszerzenia dla
Rozpoznawane są również C++ i asembler. Jeśli cpp nie rozpoznaje rozszerzenia, to
potraktuje plik jako C; jest to najbardziej ogólny tryb.

Uwaga: Poprzednie wersje cpp akceptowane a -długie opcja, która wybrała zarówno
język i poziom zgodności z normami. Ta opcja została usunięta, ponieważ
to jest w konflikcie z -l opcja.

-std=standard
-ansi
Określ standard, z którym powinien być zgodny kod. Obecnie CPP wie o C
i standardy C++; inne mogą zostać dodane w przyszłości.

standard może być jednym z:

"c90"
"c89"
"izo9899:1990"
Norma ISO C z 1990 roku. c90 jest zwyczajowym skrótem tej wersji
standard.

Połączenia -ansi opcja jest równoważna -std=c90.

"izo9899:199409"
Norma C z 1990 r., zmieniona w 1994 r.

"izo9899:1999"
"c99"
"izo9899:199x"
"c9x"
Zmieniona norma ISO C, opublikowana w grudniu 1999. Przed publikacją ta
był znany jako C9X.

"izo9899:2011"
"c11"
"c1x"
Zmieniona norma ISO C, opublikowana w grudniu 2011. Przed publikacją ta
był znany jako C1X.

"gnu90"
"gnu89"
Standard C z 1990 r. plus rozszerzenia GNU. To jest ustawienie domyślne.

"gnu99"
"gnu9x"
Standard C z 1999 r. plus rozszerzenia GNU.

"gnu11"
"gnu1x"
Standard C z 2011 r. plus rozszerzenia GNU.

„c++98”
Standard ISO C++ z 1998 roku wraz z poprawkami.

"gnu++98"
Taki sam jak -std=c++98 plus rozszerzenia GNU. Jest to ustawienie domyślne dla kodu C++.

-JA- Podziel ścieżkę dołączania. Wszelkie katalogi określone za pomocą -I opcje przed -JA- jest
szukano tylko nagłówków żądanych z "#include "plik""; nie są wyszukiwane
"#włączaćplik>". Jeśli dodatkowe katalogi są określone za pomocą -I opcje po
-JA-, te katalogi są przeszukiwane dla wszystkich #zawierać dyrektyw.

Dodatkowo, -JA- blokuje użycie katalogu bieżącego katalogu plików jako
pierwszy katalog wyszukiwania dla "#include "plik"".

Ta opcja została wycofana.

-nostdinc
Nie przeszukuj standardowych katalogów systemowych w poszukiwaniu plików nagłówkowych. Tylko katalogi
określiłeś z -I opcje (i katalog bieżącego pliku, jeśli
odpowiednie) są przeszukiwane.

-nostdinc++
Nie szukaj plików nagłówkowych w standardowych katalogach specyficznych dla C++, ale nadal szukaj
przeszukaj inne standardowe katalogi. (Ta opcja jest używana podczas budowania C++
Biblioteka.)

-zawierać filet
Przetwarzanie filet jakby "#include "plik"" pojawił się jako pierwszy wiersz podstawowego źródła
plik. Jednak pierwszy wyszukiwany katalog filet czy preprocesor działa?
katalog zamiast of katalog zawierający główny plik źródłowy. Jeśli nie znaleziono
tam jest wyszukiwany w pozostałej części łańcucha wyszukiwania „#include „...”” jako
Normal.

Jeśli wiele -zawierać podane są opcje, pliki są umieszczane w kolejności, w jakiej
pojawiają się w wierszu poleceń.

-makros filet
Dokładnie jak -zawierać, z wyjątkiem wszelkich danych wyjściowych powstałych w wyniku skanowania filet Jest rzucony
z dala. Makra, które definiuje, pozostają zdefiniowane. Pozwala to na zdobycie wszystkich makr
z nagłówka bez przetwarzania jego deklaracji.

Wszystkie pliki określone przez -makros są przetwarzane przed wszystkimi plikami określonymi przez -zawierać.

-idirafter reż
Szukaj reż dla plików nagłówkowych, ale zrób to po wszystkie katalogi określone za pomocą -I oraz
standardowe katalogi systemowe zostały wyczerpane. reż jest traktowany jako system m.in.
informator. Gdyby reż zaczyna się od „=”, następnie „=” zostanie zastąpiony przez sysroot
prefiks; zobaczyć --główny system i -isysroot.

-iprefiks prefiks
Sprecyzować prefiks jako przedrostek dla kolejnych -izprefiksem opcje. Jeśli przedrostek
reprezentuje katalog, powinieneś dołączyć końcowy /.

-izprefiksem reż
-izprzedrostkiemprzed reż
Dodać reż do prefiksu określonego wcześniej za pomocą -iprefiksi dodaj wynikowy
do katalogu dołączania ścieżki wyszukiwania. -izprzedrostkiemprzed umieszcza go w tym samym miejscu -I
zrobiłbym; -izprefiksem kładzie to gdzie -idirafter doskonałe.

-isysroot reż
Ta opcja jest podobna do --główny system opcja, ale dotyczy tylko plików nagłówkowych (z wyjątkiem
Celami Darwina, gdzie dotyczy zarówno plików nagłówkowych, jak i bibliotek). Zobacz
--główny system opcja, aby uzyskać więcej informacji.

-imultilib reż
Zastosowanie reż jako podkatalog katalogu zawierającego nagłówki C++ specyficzne dla celu.

-isystem reż
Szukaj reż dla plików nagłówkowych, po wszystkich katalogach określonych przez -I ale przed
standardowe katalogi systemowe. Oznacz go jako katalog systemowy, aby był taki sam
specjalne traktowanie, jak w przypadku standardowych katalogów systemowych.

If reż zaczyna się od „=", następnie „=" zostanie zastąpione przedrostkiem sysroot; zobaczyć
--główny system i -isysroot.

-Cytuję reż
Szukaj reż tylko dla plików nagłówkowych żądanych z "#include "plik""; oni nie są
szukano „#includeplik>", przed wszystkimi katalogami określonymi przez -I i przed
standardowe katalogi systemowe.

If reż zaczyna się od „=", następnie „=" zostanie zastąpione przedrostkiem sysroot; zobaczyć
--główny system i -isysroot.

-f-dyrektywy-tylko
Podczas przetwarzania wstępnego obsługuj dyrektywy, ale nie rozwijaj makr.

Zachowanie opcji zależy od -E i -fwstępnie przetworzony opcje.

Z -E, wstępne przetwarzanie ogranicza się do obsługi dyrektyw, takich jak „#define”,
„#ifdef” i „#błąd”. Inne operacje preprocesora, takie jak rozszerzanie makr i
konwersja trigrafu nie jest wykonywana. Ponadto -dD opcja jest domyślnie
włączone.

Z -fwstępnie przetworzony, predefinicja wiersza poleceń i większości wbudowanych makr to
wyłączone. Obsługiwane są makra, takie jak „__LINE__”, które są zależne od kontekstu
normalnie. Umożliwia to kompilację plików wcześniej przetworzonych za pomocą „-E
-f-tylko dyrektywy".

Z obydwoma -E i -fwstępnie przetworzony, zasady dotyczące -fwstępnie przetworzony mają pierwszeństwo. Ten
umożliwia pełne wstępne przetwarzanie plików wcześniej przetworzonych za pomocą „-E
-f-tylko dyrektywy".

-fdolary-w-identyfikatorach
Akceptuj $ w identyfikatorach.

-rozszerzone-identyfikatory
Akceptuj uniwersalne nazwy znaków w identyfikatorach. Opcja jest wyłączona domyślnie
dla C99 (i późniejszych standardowych wersji C) i C++.

-fno-kanoniczne-system-nagłówki
Podczas przetwarzania wstępnego nie skracaj ścieżek nagłówków systemowych za pomocą kanonizacji.

-fwstępnie przetworzony
Wskaż preprocesorowi, że plik wejściowy został już przetworzony. Ten
pomija takie rzeczy, jak rozwijanie makr, konwersja trigrafu, unikanie łączenia znaków nowej linii,
i przetwarzanie większości dyrektyw. Preprocesor nadal rozpoznaje i usuwa
komentarze, dzięki czemu można przekazać plik wstępnie przetworzony za pomocą -C do kompilatora bez
problemy. W tym trybie zintegrowany preprocesor to niewiele więcej niż tokenizer
na frontach.

-fwstępnie przetworzony jest niejawna, jeśli plik wejściowy ma jedno z rozszerzeń .i, II or .mi.
Są to rozszerzenia używane przez GCC dla wstępnie przetworzonych plików utworzonych przez -zapisz-temps.

-ftabstop=szerokość
Ustaw odległość między tabulatorami. Pomaga to preprocesorowi raportować poprawną kolumnę
liczby w ostrzeżeniach lub błędach, nawet jeśli w wierszu pojawiają się tabulatory. Jeśli wartość jest mniejsza
niż 1 lub więcej niż 100, opcja jest ignorowana. Wartość domyślna to 8.

-fdebug-cpp
Ta opcja jest przydatna tylko do debugowania GCC. W przypadku użycia z -E, debugowanie zrzutów
informacje o mapach lokalizacji. Każdy token na wyjściu jest poprzedzony zrzutem
mapa, do której należy jego lokalizacja. Zrzut mapy z lokalizacją tokena
byłoby:

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

W przypadku użycia bez -E, ta opcja nie ma żadnego efektu.

-ftrack-makro-rozszerzenie[=poziom]
Śledź lokalizacje tokenów w rozszerzeniach makro. Pozwala to kompilatorowi na emisję
diagnostyka bieżącego stosu rozszerzeń makr, gdy wystąpi błąd kompilacji w
rozszerzenie makro. Użycie tej opcji powoduje, że preprocesor i kompilator zużywają
więcej pamięci. ten poziom parametr może służyć do wyboru poziomu precyzji tokena
śledzenie lokalizacji, zmniejszając w ten sposób zużycie pamięci, jeśli to konieczne. Wartość 0 of
poziom dezaktywuje tę opcję, tak jakby nie -ftrack-makro-rozszerzenie był obecny
wiersz poleceń. Wartość 1 śledzi lokalizacje tokenów w trybie zdegradowanym ze względu na
minimalne obciążenie pamięci. W tym trybie wszystkie tokeny wynikające z ekspansji an
argument makra podobnego do funkcji mają tę samą lokalizację. Wartość 2 śledzi tokeny
lokalizacje całkowicie. Ta wartość jest najbardziej głodna pamięci. Kiedy ta opcja jest podana
bez argumentu, domyślna wartość parametru to 2.

Zauważ, że "-ftrack-macro-expansion=2" jest domyślnie włączone.

-fexec-charset=charset
Ustaw zestaw znaków wykonania, używany dla stałych łańcuchowych i znakowych. Domyślny
to UTF-8. charset może być dowolnym kodowaniem obsługiwanym przez systemową bibliotekę „iconv”
rutyna.

-fwide-exec-charset=charset
Ustawia szeroki zestaw znaków wykonywania, używany dla szerokich ciągów i stałych znakowych.
Wartość domyślna to UTF-32 lub UTF-16, w zależności od tego, co odpowiada szerokości „wchar_t”. Jak
w -fexec-charset, charset może być dowolnym kodowaniem obsługiwanym przez "iconv" systemu
rutyna biblioteczna; jednak będziesz mieć problemy z kodowaniem, które nie będzie pasować
dokładnie w "wchar_t".

-finput-charset=charset
Ustaw zestaw znaków wejściowych, używany do tłumaczenia z zestawu znaków wejściowego
plik do źródłowego zestawu znaków używanego przez GCC. Jeśli ustawienia regionalne nie określają, lub GCC
nie można uzyskać tych informacji z ustawień regionalnych, domyślnie jest to UTF-8. To może być
zastępowane przez ustawienia regionalne lub tę opcję wiersza polecenia. Obecnie polecenie-
opcja line ma pierwszeństwo w przypadku konfliktu. charset może być dowolnym kodowaniem
obsługiwane przez procedurę biblioteki „iconv” systemu.

-fworking-katalog
Włącz generowanie znaczników linii na wyjściu preprocesora, które pozwolą kompilatorowi
znać bieżący katalog roboczy w czasie przetwarzania wstępnego. Kiedy ta opcja to
włączony, preprocesor wyemituje, po początkowym znaczniku linii, drugi znacznik linii
z bieżącym katalogiem roboczym, po którym następują dwa ukośniki. GCC użyje tego
katalog, gdy jest obecny we wstępnie przetworzonym wejściu, ponieważ katalog wyemitowany jako
bieżący katalog roboczy w niektórych formatach informacji debugowania. Ta opcja to
niejawnie włączone, jeśli informacje debugowania są włączone, ale można to powstrzymać za pomocą
zanegowana forma -fno-katalog-roboczy, Jeśli -P flaga jest obecna w poleceniu
line, ta opcja nie ma żadnego efektu, ponieważ żadne dyrektywy "#line" nie są emitowane.

-fno-pokaż kolumnę
Nie drukuj numerów kolumn w diagnostyce. Może to być konieczne, jeśli diagnostyka jest
skanowanie przez program, który nie rozumie numerów kolumn, na przykład
dejagn.

-A orzec=odpowiedź
Dokonaj asercji z predykatem orzec i odpowiedź odpowiedź. Ten formularz jest
preferowana w stosunku do starszej formy -A orzec(odpowiedź), który jest nadal obsługiwany, ponieważ
nie używa znaków specjalnych powłoki.

-A -orzec=odpowiedź
Anuluj asercję z predykatem orzec i odpowiedź odpowiedź.

-dZNAKI
ZNAKI jest sekwencją co najmniej jednego z następujących znaków i nie może być
poprzedzony spacją. Inne znaki są interpretowane przez właściwy kompilator lub
zarezerwowane dla przyszłych wersji GCC i dlatego są po cichu ignorowane. Jeśli określisz
postacie, których zachowanie jest sprzeczne, wynik jest niezdefiniowany.

M Zamiast normalnego wyjścia wygeneruj listę #definiować dyrektywy dla wszystkich
makra zdefiniowane podczas wykonywania preprocesora, w tym predefiniowane
makra. Dzięki temu możesz dowiedzieć się, co jest wstępnie zdefiniowane w Twojej wersji
preprocesor. Zakładając, że nie masz pliku foo.h, Komenda

dotknij foo.h; cpp -dM foo.h

pokaże wszystkie predefiniowane makra.

Jeśli używasz -dM bez -E opcja, -dM jest interpretowany jako synonim słowa
-fdump-rtl-mach.

D Jak M z wyjątkiem dwóch aspektów: to robi nie zawierać predefiniowane makra, a to
Wyjścia obie dotychczasowy #definiować dyrektywy i wynik przetwarzania wstępnego. Oba rodzaje
wyjścia przejdź do standardowego pliku wyjściowego.

N Jak D, ale emitują tylko nazwy makr, a nie ich rozwinięcia.

I Wydajność #zawierać dyrektywy oprócz wyniku przetwarzania wstępnego.

U Jak D z wyjątkiem tego, że tylko makra, które są rozwinięte lub których zdefiniowanie jest testowane
w dyrektywach preprocesora są wyprowadzane; wyjście jest opóźnione do momentu użycia lub
test makra; oraz #niedef dyrektywy są również wyprowadzane dla przetestowanych makr, ale
nieokreślone w tym czasie.

-P Zablokuj generowanie znaczników linii na wyjściu preprocesora. To może być
przydatne podczas uruchamiania preprocesora na czymś, co nie jest kodem C i zostanie wysłane
do programu, który może być zdezorientowany przez znaczniki linii.

-C Nie odrzucaj komentarzy. Wszystkie komentarze są przekazywane do pliku wyjściowego, z wyjątkiem
dla komentarzy w przetworzonych dyrektywach, które są usuwane wraz z dyrektywą.

Powinieneś być przygotowany na skutki uboczne podczas używania -C; powoduje to, że preprocesor
traktuj komentarze jako osobne tokeny. Na przykład komentarze pojawiające się na
początek tego, co byłoby wierszem dyrektywy, powoduje przekształcenie tego wiersza w
zwykła linia źródłowa, ponieważ pierwszy token w linii nie jest już a #.

-CC Nie odrzucaj komentarzy, także podczas rozwijania makr. To jest jak -C, z wyjątkiem
że komentarze zawarte w makrach są również przekazywane do pliku wyjściowego, gdzie
makro jest rozwinięte.

Oprócz skutków ubocznych -C opcja, -CC opcja powoduje, że wszystko w stylu C++
komentarze wewnątrz makra, które mają zostać przekonwertowane na komentarze w stylu C. Ma to zapobiec później
użycie tego makra przed nieumyślnym zakomentowaniem pozostałej części wiersza źródłowego.

Połączenia -CC opcja jest zwykle używana do obsługi komentarzy lint.

-tradycyjny-cpp
Spróbuj naśladować zachowanie staromodnych preprocesorów C, w przeciwieństwie do ISO C
preprocesory.

-trygrafy
Sekwencje trigrafu procesowego.

-przemapuj
Włącz specjalny kod, aby obejść systemy plików, które dopuszczają tylko bardzo krótkie pliki
nazwy, takie jak MS-DOS.

--help
--cel-pomoc
Wypisuje tekst opisujący wszystkie opcje wiersza poleceń zamiast wstępnego przetwarzania czegokolwiek.

-v Tryb szczegółowy. Wydrukuj numer wersji GNU CPP na początku wykonania i
zgłoś ostateczną formę ścieżki dołączania.

-H Wydrukuj nazwę każdego używanego pliku nagłówkowego, oprócz innych normalnych czynności. Każdy
nazwa jest wcięta, aby pokazać, jak głęboko w #zawierać stos to jest. Prekompilowany nagłówek
pliki są również drukowane, nawet jeśli okaże się, że są nieprawidłowe; nieprawidłowy prekompilowany
plik nagłówkowy jest drukowany z ...X i ważny z ! ... .

-wersja
--wersja
Wydrukuj numer wersji GNU CPP. Za pomocą jednej kreski przejdź do wstępnego przetwarzania w normalny sposób.
Z dwoma myślnikami natychmiast wyjdź.

ŚRODOWISKO


W tej sekcji opisano zmienne środowiskowe, które wpływają na działanie CPP. Możesz
użyj ich do określenia katalogów lub przedrostków, które mają być używane podczas wyszukiwania plików dołączanych lub do
sterowanie wyjściem zależności.

Pamiętaj, że możesz również określić miejsca do przeszukania za pomocą opcji takich jak -I, i kontrola
wyjście zależności z opcjami takimi jak -M. Mają one pierwszeństwo przed zmiennymi środowiskowymi,
które z kolei mają pierwszeństwo przed konfiguracją GCC.

ŚCIEŻKA
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
Wartość każdej zmiennej jest listą katalogów oddzielonych specjalnym znakiem, dużo
lubić PATH, w którym szukać plików nagłówkowych. Specjalny charakter,
„PATH_SEPARATOR” jest zależny od celu i określany w czasie kompilacji GCC. Dla Microsoft
Cele oparte na systemie Windows jest to średnik, a dla prawie wszystkich innych celów jest to
dwukropek.

ŚCIEŻKA określa listę katalogów do przeszukania, tak jakby określono za pomocą -I, ale
po dowolnych ścieżkach podanych z -I opcje w wierszu poleceń. Ta zmienna środowiskowa
jest używany niezależnie od tego, który język jest wstępnie przetwarzany.

Pozostałe zmienne środowiskowe mają zastosowanie tylko podczas wstępnego przetwarzania określonego
wskazany język. Każdy określa listę katalogów do przeszukania, tak jakby
określony z -isystem, ale po dowolnych ścieżkach podanych z -isystem opcje na
wiersz poleceń.

We wszystkich tych zmiennych pusty element instruuje kompilator, aby przeszukał jego bieżący
katalog roboczy. Puste elementy mogą pojawić się na początku lub na końcu ścieżki. Do
przykład, jeśli wartość ŚCIEŻKA to ":/special/include", który ma taki sam efekt jak
-I. -I/specjalne/zawiera.

DEPENDENCIES_OUTPUT
Jeśli ta zmienna jest ustawiona, jej wartość określa sposób wyprowadzania zależności dla Make based
na niesystemowych plikach nagłówkowych przetwarzanych przez kompilator. Systemowe pliki nagłówkowe są
ignorowane w danych wyjściowych zależności.

Wartość DEPENDENCIES_OUTPUT może być tylko nazwą pliku, w takim przypadku reguły tworzenia
są zapisywane do tego pliku, odgadując nazwę docelową z nazwy pliku źródłowego. Albo
wartość może mieć postać filet cel, w takim przypadku zasady są zapisywane do pliku filet
za pomocą cel jako nazwę docelową.

Innymi słowy, ta zmienna środowiskowa jest równoważna połączeniu opcji -MM
i -MF, z opcjonalnym -MT przełącznik też.

SUNPRO_DEPENDENCIES
Ta zmienna jest taka sama jak DEPENDENCIES_OUTPUT (patrz wyżej), z wyjątkiem tego systemu
pliki nagłówkowe nie są ignorowane, co sugeruje -M zamiast -MM. Jednakże
zależność od głównego pliku wejściowego jest pomijana.

Używaj mips-linux-gnu-cpp online za pomocą usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad