영어FrenchGermanItalianPortugueseRussianSpanish

온웍스 파비콘

aarch64-linux-gnu-cpp-4.8 - 클라우드의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 aarch64-linux-gnu-cpp-4.8 실행

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 aarch64-linux-gnu-cpp-4.8 명령입니다.

프로그램:

이름


cpp - C 전처리기

개요


cpp [-D매크로[=데프]...] [-U매크로]
[-IDIR...] [- 인용DIR...]
[-W경고...]
[-M|-MM] [-MG] [-MF 파일 이름]
[-MP] [-MQ 목표...]
[-산 목표...]
[-P] [-fno-작업 디렉터리]
[-x 언어] [-표준=표준]
인파일 아웃파일

가장 유용한 옵션만 여기에 나열됩니다. 나머지는 아래를 참조하십시오.

기술


C 전처리기, 흔히 CPP이다 매크로 프로세서 자동으로 사용되는
C 컴파일러는 컴파일 전에 프로그램을 변환합니다. 매크로라고 합니다
프로세서를 정의할 수 있기 때문에 매크로, 더 긴 약어
구성.

C 전처리기는 C, C++ 및 Objective-C 소스 코드에서만 사용하도록 되어 있습니다.
과거에는 일반 텍스트 프로세서로 악용되었습니다. 입력하면 질식합니다.
C의 어휘 규칙을 따르지 않습니다. 예를 들어, 아포스트로피는 다음과 같이 해석됩니다.
문자 상수의 시작 부분에 오류가 발생합니다. 또한, 당신은 그것에 의존할 수 없습니다
C 계열 언어에 중요하지 않은 입력의 특성을 유지합니다.
Makefile이 전처리되면 모든 하드 탭이 제거되고 Makefile은
작동하지.

그렇긴 하지만, C가 아닌 것에 cpp를 사용하는 것으로 종종 벗어날 수 있습니다. 기타
Algol-ish 프로그래밍 언어는 종종 안전합니다(Pascal, Ada 등). 어셈블리도 마찬가지입니다.
주의. -전통적인 cpp 모드는 더 많은 공백을 보존하고 그렇지 않으면 더
허용적인. C 또는 C++ 스타일 주석을 작성하면 많은 문제를 피할 수 있습니다.
모국어 주석 대신 매크로를 단순하게 유지합니다.

가능한 한 작성하는 언어에 맞는 전처리기를 사용해야 합니다.
in. GNU 어셈블러의 최신 버전에는 매크로 기능이 있습니다. 가장 높은 수준
프로그래밍 언어에는 자체 조건부 컴파일 및 포함 메커니즘이 있습니다. 만약에
다른 모든 방법이 실패하면 GNU M4와 같은 진정한 일반 텍스트 프로세서를 사용해 보십시오.

C 전처리기는 몇 가지 세부 사항에서 다릅니다. 이 설명서는 GNU C 전처리기에 대해 설명합니다.
ISO 표준 C 기능의 작은 상위 집합을 제공합니다. 기본 모드에서 GNU는
C 전처리기는 표준에서 요구하는 몇 가지 작업을 수행하지 않습니다. 이것들은 기능입니다
거의 사용되지 않으며 의미에 놀라운 변화를 일으킬 수 있습니다.
기대하지 않는 프로그램. 엄격한 ISO 표준 C를 얻으려면 다음을 사용해야 합니다.
-std=c90, -std=c99 or -std=c11 옵션, 표준 버전에 따라
원하다. 모든 필수 진단을 받으려면 다음을 사용해야 합니다. -페단 틱.

이 매뉴얼은 ISO 전처리기의 동작을 설명합니다. 불필요한 것을 최소화하기 위해
ISO 전처리기의 동작이 기존 방식과 충돌하지 않는 차이점
의미론에서 전통적인 전처리기는 같은 방식으로 작동해야 합니다. 다양한
존재하는 차이점은 섹션에 자세히 설명되어 있습니다. 전통적인 모드.

명확성을 위해 달리 명시되지 않는 한 CPP 이 설명서에서 GNU CPP를 참조하십시오.

옵션


C 전처리기는 두 개의 파일 이름을 인수로 예상합니다. 인파일아웃파일. 그만큼
전처리기 읽기 인파일 지정하는 다른 파일과 함께 #포함. 모든
결합된 입력 파일에 의해 생성된 출력은 아웃파일.

어느 인파일 or 아웃파일-, 다음과 같이 인파일 표준 입력에서 읽는 것을 의미하고
as 아웃파일 표준 출력에 쓰는 것을 의미합니다. 또한 두 파일 중 하나가 생략되면 다음을 의미합니다.
마치 - 해당 파일에 대해 지정되었습니다.

달리 명시되지 않는 한 옵션은 다음으로 끝납니다. =, 인수를 취하는 모든 옵션은
해당 인수가 옵션 바로 뒤에 나타나거나 사이에 공백이 있어야 합니다.
옵션 및 인수: -이푸-I 같은 효과가 있습니다.

많은 옵션에는 여러 문자 이름이 있습니다. 따라서 여러 단일 문자 옵션은 지원 be
그룹화: -dM ~와는 매우 다릅니다 -d -M.

-D name
사전 정의 name 매크로로 정의 1.

-D name=정의
내용 정의 토큰화 및 처리됩니다.
번역 단계 XNUMX #밝히다 지령. 특히, 정의는
포함된 개행 문자로 잘립니다.

쉘 또는 쉘과 유사한 프로그램에서 전처리기를 호출하는 경우 다음이 필요할 수 있습니다.
쉘의 인용 구문을 사용하여 공백과 같은 문자를 보호합니다.
쉘 구문의 의미.

명령줄에서 함수와 같은 매크로를 정의하려면 해당 인수를 작성하십시오.
등호(있는 경우) 앞에 괄호가 있는 목록. 괄호는
대부분의 쉘에 의미가 있으므로 옵션을 인용해야 합니다. 와 함께 shCSH,
-NS'name(인수...)=정의' 작동합니다.

-D-U 옵션은 명령줄에 제공된 순서대로 처리됩니다. 모두
-매크로 파일-포함 파일 옵션은 결국 처리됩니다 -D-U 옵션을 제공합니다.

-U name
이전 정의 취소 name, 내장 또는 제공 -D 옵션을 선택합니다.

-언데프
시스템 특정 또는 GCC 특정 매크로를 미리 정의하지 마십시오. 미리 정의된 표준
매크로는 정의된 상태로 유지됩니다.

-I DIR
디렉토리 추가 DIR 헤더 파일을 검색할 디렉토리 목록으로 이동합니다.

이름이 지정된 디렉토리 -I 표준 시스템이 디렉토리를 포함하기 전에 검색됩니다.
디렉토리의 경우 DIR 표준 시스템 포함 디렉토리인 경우 옵션이 무시됩니다.
시스템 디렉토리에 대한 기본 검색 순서와 특수 처리가
의 시스템 헤더는 패배하지 않습니다. 만약에 DIR "="로 시작하면 "="가 됩니다.
sysroot 접두사로 대체됩니다. 보다 --sysroot-isysroot.

-o 파일
에 출력 쓰기 파일. 지정하는 것과 같습니다. 파일 두 번째 옵션으로
인수 CPP. GCC 옵션이 아닌 두 번째 인수에 대해 다른 해석이 있는 경우
그래서 당신은 사용해야합니다 -o 출력 파일을 지정합니다.

-벽
일반 코드에 필요한 모든 선택적 경고를 켭니다. 현재 이
is -댓글, -Wtrigraphs, -W멀티문자 및 정수 승격에 대한 경고로 인해
"#if" 표현의 기호 변경. 많은 전처리기의 경고가
기본적으로 켜져 있으며 제어할 수 있는 옵션이 없습니다.

-댓글
-W댓글
주석 시작 시퀀스 때마다 경고 /* 에 나타납니다 /* 댓글 또는 언제든지
백슬래시-개행 문자가 나타납니다. // 논평. (두 형태 모두 동일한 효과를 가집니다.)

-Wtrigraphs
주석에 있는 대부분의 삼중자는 프로그램의 의미에 영향을 줄 수 없습니다. 그러나
이스케이프된 개행 문자(??/ 줄 끝에서) 할 수 있습니다.
주석이 시작되거나 끝나는 위치를 변경합니다. 따라서,
이스케이프된 줄 바꿈은 주석 내부에 경고를 생성합니다.

이 옵션은 -벽. 면 -벽 이 옵션은 여전히 ​​활성화되어 있습니다.
trigraphs가 활성화되지 않는 한. 경고 없이 trigraph 변환을 얻으려면
다른 -벽 경고, 사용 -삼각형 -벽 -Wno-trigraphs.

-전통적인
기존 및 ISO C에서 다르게 동작하는 특정 구성에 대해 경고합니다. 또한
기존의 C에 해당하는 항목이 없고 문제가 있는 ISO C 구성에 대해 경고합니다.
피해야 할 구조.

-분데프
매크로가 아닌 식별자가 #만약 지시문
밖의 한정된. 이러한 식별자는 XNUMX으로 대체됩니다.

-사용하지 않은 매크로
사용하지 않는 기본 파일에 정의된 매크로에 대해 경고합니다. 매크로는 익숙한 그렇다면
적어도 한 번은 확장되거나 존재 여부를 테스트했습니다. 전처리기는 다음과 같은 경우에도 경고합니다.
매크로가 재정의되거나 정의되지 않은 시점에 사용되지 않았습니다.

기본 제공 매크로, 명령줄에 정의된 매크로 및 에 정의된 매크로는 다음을 포함합니다.
파일에 대해 경고하지 않습니다.

참고 : 매크로가 실제로 사용되지만 건너뛴 조건부 블록에서만 사용되는 경우
CPP는 이를 사용하지 않은 것으로 보고합니다. 이러한 경우 경고를 피하기 위해 다음을 개선할 수 있습니다.
예를 들어 매크로 정의의 범위를 건너뛴 첫 번째 항목으로 이동합니다.
블록. 또는 다음과 같이 더미 사용을 제공할 수 있습니다.

#the_macro_causing_the_warning을 정의한 경우
#endif

-웬디프 라벨
언제든지 경고 #그밖에 또는 #endif 텍스트가 뒤따릅니다. 이것은 일반적으로 다음에서 발생합니다.
형식의 코드

#만약 FOO라면
...
#else FOO
...
#endif FOO

두 번째와 세 번째 "FOO"는 주석에 있어야 하지만 이전 프로그램에는 없는 경우가 많습니다.
이 경고는 기본적으로 켜져 있습니다.

-워러
모든 경고를 하드 오류로 만듭니다. 경고를 트리거하는 소스 코드는 다음과 같습니다.
거부되었습니다.

-Wsystem 헤더
시스템 헤더의 코드에 대한 경고를 발행합니다. 이것들은 일반적으로 찾는 데 도움이 되지 않습니다.
따라서 자신의 코드에 있는 버그를 억제합니다. 시스템에 대한 책임이 있는 경우
도서관, 당신은 그들을보고 싶을 수 있습니다.

-w GNU CPP가 기본적으로 발행하는 경고를 포함하여 모든 경고를 표시하지 않습니다.

-페단 틱
C 표준에 나열된 모든 필수 진단을 발행하십시오. 그들 중 일부는 남아 있습니다
무해한 코드에서 자주 트리거되기 때문에 기본적으로 out.

- 현학적 오류
모든 필수 진단을 실행하고 모든 필수 진단을 오류로 만듭니다.
여기에는 GCC가 다음 없이 발행하는 필수 진단이 포함됩니다. -페단 틱 그러나 다음과 같이 취급합니다.
경고.

-M 전처리 결과를 출력하는 대신에 적합한 규칙을 출력 확인
기본 소스 파일의 종속성을 설명합니다. 전처리기는 하나를 출력합니다.
확인 해당 소스 파일에 대한 개체 파일 이름, 콜론 및 이름을 포함하는 규칙
다음에서 오는 파일을 포함하여 포함된 모든 파일의 -포함 or -매크로 명령
라인 옵션.

명시적으로 지정하지 않는 한( -산 or -MQ), 개체 파일 이름은
접미사가 개체 파일 접미사로 대체되고 임의의 접미사가 있는 소스 파일의 이름
선행 디렉토리 부분이 제거되었습니다. 포함된 파일이 많은 경우 규칙은 다음과 같습니다.
사용하여 여러 줄로 분할 \- 개행. 규칙에는 명령이 없습니다.

이 옵션은 다음과 같은 전처리기의 디버그 출력을 억제하지 않습니다. -dM. 피하려면
이러한 디버그 출력을 종속성 규칙과 혼합하여 명시적으로 지정해야 합니다.
종속성 출력 파일 -MF, 또는 다음과 같은 환경 변수를 사용하십시오.
DEPENDENCIES_OUTPUT. 디버그 출력은 다음과 같이 일반 출력 스트림으로 계속 전송됩니다.
정상입니다.

통과 -M 운전자에게 의미 -E, 그리고 암시적으로 경고를 억제합니다. -w.

-MM 처럼 -M 그러나 시스템 헤더 디렉토리에 있는 헤더 파일은 언급하지 마십시오.
이러한 헤더에서 직접 또는 간접적으로 포함된 헤더 파일도 없습니다.

이것은 꺾쇠 괄호 또는 큰 따옴표를 선택하는 것을 의미합니다. #포함
지시문 자체는 해당 헤더가 다음에 나타날지 여부를 결정하지 않습니다. -MM
의존성 출력. 이것은 GCC 버전 3.0 및
일찍이.

-MF 파일
함께 사용할 때 -M or -MM, 종속성을 쓸 파일을 지정합니다. 그렇지 않은 경우 -MF
스위치는 전처리기가 전송했을 동일한 위치로 규칙을 보냅니다.
전처리된 출력.

드라이버 옵션과 함께 사용하는 경우 -MD or -MMD, -MF 기본 종속성을 재정의합니다.
결과물 파일.

-MG 다음과 같은 옵션과 함께 -M 의존성 생성 요청, -MG 가정하다
누락된 헤더 파일은 생성된 파일이며 이를 제외하고 종속성 목록에 추가합니다.
오류를 발생시킵니다. 종속성 파일 이름은 "#include"에서 직접 가져옵니다.
경로를 추가하지 않고 지시문. -MG 또한 전처리된 출력을 억제합니다.
누락된 헤더 파일은 이것을 쓸모없게 만듭니다.

이 기능은 makefile의 자동 업데이트에 사용됩니다.

-MP 이 옵션은 CPP가 다음 이외의 각 종속성에 대해 가짜 대상을 추가하도록 지시합니다.
메인 파일을 생성하여 각각이 아무것도 의존하지 않게 합니다. 이 더미 규칙은 오류를 해결합니다.
확인 업데이트하지 않고 헤더 파일을 제거하면 제공 Makefile 일치합니다.

다음은 일반적인 출력입니다.

test.o: test.c test.h

test.h :

-산 목표
종속성 생성에서 내보낸 규칙의 대상을 변경합니다. 기본적으로 CPP는
기본 입력 파일의 이름, 모든 디렉토리 구성 요소 및 파일 접미사 삭제
.c, 플랫폼의 일반적인 개체 접미사를 추가합니다. 결과는 목표입니다.

An -산 옵션은 대상을 정확히 지정한 문자열로 설정합니다. 네가 원한다면
여러 대상을 단일 인수로 지정할 수 있습니다. -산, 또는 여러
-산 옵션을 제공합니다.

예를 들어, -산 '$(objpfx)foo.o' 줄 수도

$(objpfx)foo.o: foo.c

-MQ 목표
과 동일 -산, 그러나 Make에 특별한 모든 문자를 인용합니다.
-MQ '$(objpfx)foo.o' 제공

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

기본 대상은 다음과 같이 제공된 것처럼 자동으로 인용됩니다. -MQ.

-MD -MD 에 해당하는 -M -MF 파일제외하고 -E 암시되지 않습니다. 운전사
결정하다 파일 여부에 따라 -o 옵션이 주어집니다. 그렇다면 드라이버는
인수이지만 접미사 .d, 그렇지 않으면 입력 파일의 이름을 사용합니다.
모든 디렉토리 구성 요소와 접미사를 제거하고 .d 접미사.

If -MD 와 함께 사용됩니다 -E, 어떤 -o 스위치는 다음을 지정하는 것으로 이해됩니다.
종속성 출력 파일이지만 없이 사용되는 경우 -E, 각각 -o 지정하는 것으로 이해된다
대상 개체 파일.

이후 -E 암시되지 않으며, -MD 종속성 출력 파일을 생성하는 데 사용할 수 있습니다.
컴파일 과정의 부작용

-MMD
처럼 -MD 시스템 헤더 파일이 아닌 사용자 헤더 파일만 언급하는 것을 제외하고.

-x c
-x C ++
-x 목적 -c
-x cpp 어셈블러
소스 언어(C, C++, Objective-C 또는 어셈블리)를 지정합니다. 이건 할말이 없다
표준 준수 또는 확장 어떤 기본 구문을
예상하다. 이 옵션 중 아무 것도 제공하지 않으면 cpp는 다음에서 언어를 추론합니다.
소스 파일의 확장자: .c, .CC, .m.S. 몇 가지 다른 일반적인 확장
C++ 및 어셈블리도 인식됩니다. cpp가 확장자를 인식하지 못하면
파일을 C로 취급합니다. 이것은 가장 일반적인 모드입니다.

참고 : 이전 버전의 cpp가 허용됨 -랑 둘 다 선택한 옵션
언어 및 표준 준수 수준. 이 옵션은 제거되었습니다.
와 충돌한다 -l 옵션을 선택합니다.

-표준=표준
-안시
코드가 준수해야 하는 표준을 지정합니다. 현재 CPP는 C에 대해 알고 있습니다.
및 C++ 표준; 다른 사람들은 미래에 추가될 수 있습니다.

표준 다음 중 하나일 수 있습니다.

"c90"
"c89"
"iso9899:1990"
1990년부터 ISO C 표준입니다. c90 이 버전의 관례적인 약어입니다.
표준.

그리고, -안시 옵션은 다음과 같습니다. -std=c90.

"iso9899:199409"
1990년에 개정된 1994년 C 표준.

"iso9899:1999"
"c99"
"iso9899:199x"
"c9x"
1999년 XNUMX월에 출판된 개정된 ISO C 표준.
C9X로 알려졌습니다.

"iso9899:2011"
"c11"
"c1x"
2011년 XNUMX월에 출판된 개정된 ISO C 표준.
C1X로 알려졌습니다.

"그누90"
"그누89"
1990 C 표준과 GNU 확장. 이것이 기본값입니다.

"그누99"
"gnu9x"
1999 C 표준과 GNU 확장.

"그누11"
"gnu1x"
2011 C 표준과 GNU 확장.

"C++98"
1998 ISO C++ 표준 및 수정 사항.

"그누++98"
같은 -std = c ++ 98 플러스 GNU 확장. 이것은 C++ 코드의 기본값입니다.

-나는- 포함 경로를 분할합니다. 다음으로 지정된 모든 디렉토리 -I 전에 옵션 -나는- 아르
"#include "로 요청된 헤더만 검색합니다.파일""; 그들은 검색되지 않습니다
"#포함하다파일>". 추가 디렉토리가 지정된 경우 -I 이후의 옵션
-나는-, 해당 디렉토리는 모두 검색됩니다. #포함 가이드 라인.

또한, -나는- 현재 파일 디렉토리의 디렉토리를 다음과 같이 사용하는 것을 금지합니다.
"#include "에 대한 첫 번째 검색 디렉토리파일"".

이 옵션은 더 이상 사용되지 않습니다.

-nostdinc
헤더 파일에 대한 표준 시스템 디렉토리를 검색하지 마십시오. 디렉토리만
당신은 로 지정했습니다 -I 옵션(및 현재 파일의 디렉토리가 있는 경우
해당)이 검색됩니다.

-nostdinc++
C++ 관련 표준 디렉토리에서 헤더 파일을 검색하지 마십시오.
다른 표준 디렉토리를 검색하십시오. (이 옵션은 C++를 빌드할 때 사용됩니다.
도서관.)

-포함 파일
방법 파일 "#include "file""이 기본 소스의 첫 번째 줄에 나타난 것처럼
파일. 그러나 검색한 첫 번째 디렉토리는 파일 전처리기의 작동입니다
예배 규칙서 를 받아야 하는 미국 여행자 of 기본 소스 파일이 포함된 디렉토리. 찾을 수 없는 경우
거기에서 "#include "..."" 검색 체인의 나머지 부분에서 다음과 같이 검색됩니다.
정상입니다.

여러 경우 -포함 옵션이 주어지면 파일은 순서대로 포함됩니다.
명령줄에 나타납니다.

-매크로 파일
정확히 같은 -포함, 스캔에 의해 생성된 모든 출력은 제외 파일 던져진다
떨어져있는. 정의한 매크로는 정의된 상태로 유지됩니다. 이를 통해 모든 매크로를 획득할 수 있습니다.
선언을 처리하지 않고 헤더에서.

에 의해 지정된 모든 파일 -매크로 에 의해 지정된 모든 파일보다 먼저 처리됩니다. -포함.

-idirafter DIR
검색 DIR 헤더 파일의 경우 시간 내에 로 지정된 모든 디렉토리 -I 그리고
표준 시스템 디렉토리가 소진되었습니다. DIR 다음을 포함하는 시스템으로 처리됩니다.
예배 규칙서. 만약에 DIR "="로 시작하면 "="는 sysroot로 대체됩니다.
접두사; 보다 --sysroot-isysroot.

-ipprefix 접두사
지정 접두사 후속 접두사로 -iwith 접두사 옵션. 접두어의 경우
디렉토리를 나타내므로 최종 /.

-iwith 접두사 DIR
-iwithprefixbefore DIR
추가 DIR 이전에 지정된 접두사에 -ipprefix, 결과를 추가하십시오
디렉토리를 포함 검색 경로로 이동합니다. -iwithprefixbefore 같은 장소에 둔다. -I
일 것이다; -iwith 접두사 그것을 어디에 둔다 -idirafter 할 것이다.

-isysroot DIR
이 옵션은 다음과 같습니다. --sysroot 옵션이지만 헤더 파일에만 적용됩니다(예외
헤더 파일과 라이브러리 모두에 적용되는 Darwin 대상). 참조
--sysroot 자세한 내용은 옵션을 참조하십시오.

-imultilib DIR
용도 DIR 대상별 C++ 헤더를 포함하는 디렉토리의 하위 디렉토리로 사용됩니다.

-아이시스템 DIR
검색 DIR 헤더 파일의 경우 다음으로 지정된 모든 디렉토리 뒤에 -I 그러나 전에
표준 시스템 디렉토리. 시스템 디렉토리로 표시하여 동일하게 가져옵니다.
표준 시스템 디렉토리에 적용되는 특별한 취급.

If DIR "="로 시작하면 "="는 sysroot 접두사로 대체됩니다. 보다
--sysroot-isysroot.

- 인용 DIR
검색 DIR "#include "로 요청된 헤더 파일에만 해당파일""; 그들은 아니다
"#포함"을 검색했습니다.파일>", 다음에 의해 지정된 모든 디렉토리 앞에 -I 그리고 전에
표준 시스템 디렉토리.

If DIR "="로 시작하면 "="는 sysroot 접두사로 대체됩니다. 보다
--sysroot-isysroot.

-f 지시문 전용
전처리할 때 지시문을 처리하되 매크로를 확장하지 마십시오.

옵션의 동작은 -E-f전처리 옵션을 제공합니다.

-E, 전처리는 "#define"과 같은 지시문 처리로 제한됩니다.
"#ifdef" 및 "#오류". 매크로 확장 및
trigraph 변환은 수행되지 않습니다. 또한, -dD 옵션은 암시적으로
사용하도록 설정되었습니다.

-f전처리, 명령줄 및 대부분의 내장 매크로의 사전 정의는
장애가있는. 컨텍스트에 따라 달라지는 "__LINE__"과 같은 매크로가 처리됩니다.
보통. 이렇게 하면 이전에 "-E"로 사전 처리된 파일을 컴파일할 수 있습니다.
-f지시어 전용".

둘이 함께 -E-f전처리, 규칙 -f전처리 우선권을 가지다. 이것
이전에 "-E"로 전처리된 파일의 전체 전처리를 가능하게 합니다.
-f지시어 전용".

-fdollars-in-identifiers
수락 $ 식별자에.

-fextended-식별자
식별자에 범용 문자 이름을 허용합니다. 이 옵션은 실험적입니다. 안에
GCC의 향후 버전에서는 C99 및 C++에 대해 기본적으로 활성화됩니다.

-fno-canonical-system-headers
전처리할 때 정규화로 시스템 헤더 경로를 줄이지 마십시오.

-f전처리
입력 파일이 이미 전처리되었음을 전처리기에 표시합니다. 이것
매크로 확장, 삼중 그래프 변환, 이스케이프된 개행 연결,
및 대부분의 지시문 처리. 전처리기는 여전히 인식하고 제거합니다.
주석으로 사전 처리된 파일을 전달할 수 있습니다. -C 없이 컴파일러에
문제. 이 모드에서 통합 전처리기는 토크나이저에 불과합니다.
프론트 엔드를 위해.

-f전처리 입력 파일에 확장자 중 하나가 있으면 암시적입니다. .i, .ii or .미.
다음은 GCC가 생성한 전처리된 파일에 사용하는 확장자입니다. - 임시 저장.

-ftabstop=
탭 정지 사이의 거리를 설정합니다. 이것은 전처리기가 올바른 열을 보고하는 데 도움이 됩니다.
줄에 탭이 나타나더라도 경고 또는 오류의 숫자. 값이 작을 경우
1보다 크거나 100보다 크면 옵션이 무시됩니다. 기본값은 8입니다.

-fdebug-cpp
이 옵션은 GCC 디버깅에만 유용합니다. 와 함께 사용할 때 -E, 덤프 디버깅
위치 지도에 대한 정보입니다. 출력의 모든 토큰 앞에는 덤프가 옵니다.
그 위치가 속한 지도. 토큰의 위치를 ​​담고 있는 맵의 덤프
다음과 같습니다.

{"P":F ;"F":F ;"엘": ;"씨": ;"NS": ;"미디엄": ;"이자형": ,"위치": }

없이 사용할 때 -E, 이 옵션은 효과가 없습니다.

-ftrack 매크로 확장[=수평]
매크로 확장에서 토큰의 위치를 ​​추적합니다. 이를 통해 컴파일러는
컴파일 오류가 발생할 때 현재 매크로 확장 스택에 대한 진단
매크로 확장. 이 옵션을 사용하면 전처리기와 컴파일러가
더 많은 메모리. NS 수평 매개변수는 토큰의 정밀도 수준을 선택하는 데 사용할 수 있습니다.
위치 추적을 통해 필요한 경우 메모리 소비를 줄입니다. 값 0 of
수평 이 옵션을 비활성화합니다. -ftrack 매크로 확장 에 있었다
명령줄. 값 1 를 위해 저하된 모드에서 토큰 위치를 추적합니다.
최소한의 메모리 오버헤드. 이 모드에서는 확장으로 인한 모든 토큰
함수와 같은 매크로의 인수는 동일한 위치를 갖습니다. 값 2 추적 토큰
위치를 완전히. 이 값은 가장 많은 메모리를 소모합니다. 이 옵션이 주어졌을 때
인수가 없으면 기본 매개변수 값은 다음과 같습니다. 2.

-ftrack-macro-expansion=2는 기본적으로 활성화되어 있습니다.

-fexec-charset=문자셋
문자열 및 문자 상수에 사용되는 실행 문자 집합을 설정합니다. 기본값
UTF-8입니다. 문자셋 시스템의 "iconv" 라이브러리에서 지원하는 모든 인코딩일 수 있습니다.
일상.

-fwide-exec-charset=문자셋
와이드 문자열 및 문자 상수에 사용되는 와이드 실행 문자 세트를 설정합니다.
기본값은 "wchar_t"의 너비에 해당하는 UTF-32 또는 UTF-16입니다. 같이
+ -fexec-charset, 문자셋 시스템의 "iconv"에서 지원하는 모든 인코딩일 수 있습니다.
라이브러리 루틴; 그러나 적합하지 않은 인코딩에는 문제가 있습니다.
정확히 "wchar_t"에 있습니다.

-finput-charset=문자셋
입력의 문자 집합에서 번역에 사용되는 입력 문자 집합을 설정합니다.
파일을 GCC에서 사용하는 소스 문자 세트로 변환합니다. 로케일이 지정되지 않은 경우 또는 GCC
로케일에서 이 정보를 가져올 수 없으며 기본값은 UTF-8입니다. 이것은 될 수있다
로케일 또는 이 명령줄 옵션에 의해 재정의됩니다. 현재 명령
충돌이 있는 경우 line 옵션이 우선합니다. 문자셋 모든 인코딩이 될 수 있습니다
시스템의 "iconv" 라이브러리 루틴에서 지원합니다.

-fworking-디렉토리
컴파일러가 허용하는 전처리기 출력에서 ​​라인 마커 생성을 활성화
전처리 시점의 현재 작업 디렉토리를 알고 있습니다. 이 옵션이
활성화되면 전처리기가 초기 라인 마커 다음에 두 번째 라인 마커를 내보냅니다.
현재 작업 디렉토리 뒤에 두 개의 슬래시가 있습니다. GCC는 이것을 사용할 것입니다
디렉토리, 사전 처리된 입력에 있는 경우 다음과 같이 내보낸 디렉토리로
일부 디버깅 정보 형식의 현재 작업 디렉토리. 이 옵션은
디버깅 정보가 활성화된 경우 암시적으로 활성화되지만 다음으로 금지할 수 있습니다.
부정형 -fno-작업 디렉터리. 경우 -P 플래그가 명령에 있습니다.
line에서 "#line" 지시문이 전혀 생성되지 않기 때문에 이 옵션은 효과가 없습니다.

-fno-show-열
진단에서 열 번호를 인쇄하지 마십시오. 진단이 필요한 경우 필요할 수 있습니다.
다음과 같이 열 번호를 이해하지 못하는 프로그램에 의해 스캔되고 있습니다.
데자누.

-A 술부=답변
술어로 주장하기 술부 대답 답변. 이 양식은
구형보다 선호 -A 술부(답변), 여전히 지원됩니다.
쉘 특수 문자를 사용하지 않습니다.

-A -술부=답변
술어로 어설션 취소 술부 대답 답변.

-dCHARS
문자 다음 문자 중 하나 이상의 시퀀스이며 다음 문자가 아니어야 합니다.
공백이 앞에 옵니다. 다른 문자는 컴파일러에 의해 적절하게 해석되거나
GCC의 향후 버전을 위해 예약되어 있으므로 자동으로 무시됩니다. 지정하는 경우
행동이 충돌하는 캐릭터, 결과는 정의되지 않습니다.

M 일반 출력 대신 다음 목록을 생성하십시오. #밝히다 모든 지침
미리 정의된 것을 포함하여 전처리기 실행 중에 정의된 매크로
매크로. 이것은 당신의 버전에 사전 정의된 것을 찾는 방법을 제공합니다.
전처리기. 파일이 없다고 가정 푸.h, 명령

터치 foo.h; cpp -dM foo.h

미리 정의 된 모든 매크로가 표시됩니다.

당신이 사용하는 경우 -dM ~없이 -E 선택권, -dM 의 동의어로 해석됩니다.
-fdump-rtl-mach.

D 처럼 M 두 가지 측면을 제외하고: 지원 미리 정의된 매크로를 포함하고
출력 전에, #밝히다 지시문 및 전처리 결과. 두 종류
출력의 표준 출력 파일로 이동합니다.

N 처럼 D, 그러나 확장이 아닌 매크로 이름만 내보냅니다.

I 산출 #포함 전처리 결과 외에 지시문.

U 처럼 D 확장되거나 정의가 테스트된 매크로만 제외
전처리기 지시문에서 출력됩니다. 사용할 때까지 출력이 지연되거나
매크로 테스트; 그리고 #언데프 지시문은 테스트된 매크로에 대해서도 출력되지만
당시 정의되지 않은.

-P 전처리기의 출력에서 ​​라인마커 생성을 금지합니다. 이것은 아마도
C 코드가 아닌 무언가에서 전처리기를 실행할 때 유용하며 전송될 것입니다.
linemarkers에 의해 혼동될 수 있는 프로그램에.

-C 댓글을 버리지 마세요. 다음을 제외한 모든 주석은 출력 파일로 전달됩니다.
지시문과 함께 삭제되는 처리된 지시문에 있는 주석의 경우.

사용 시 부작용에 대비해야 합니다. -C; 그것은 전처리기가
댓글을 자체적으로 토큰으로 취급합니다. 예를 들어, 게시판에 표시되는 댓글은
지시 행이 될 것의 시작은 그 행을 다음으로 바꾸는 효과가 있습니다.
라인의 첫 번째 토큰이 더 이상 a가 아니기 때문에 일반 소스 라인 #.

-CC 매크로 확장 중을 포함하여 주석을 삭제하지 마십시오. 이것은 마치 -C제외
매크로에 포함된 주석도 출력 파일로 전달됩니다.
매크로가 확장됩니다.

부작용 뿐만 아니라 -C 옵션, -CC 옵션은 모든 C++ 스타일을 유발합니다.
매크로 내부의 주석을 C 스타일 주석으로 변환합니다. 이것은 나중에 방지하기 위해
실수로 소스 행의 나머지 부분을 주석으로 처리하여 해당 매크로를 사용합니다.

그리고, -CC 옵션은 일반적으로 린트 주석을 지원하는 데 사용됩니다.

-전통적인 cpp
ISO C와 달리 구식 C 전처리기의 동작을 모방하십시오.
전처리기.

-삼각형
삼중 그래프 시퀀스를 처리합니다.

-다시 매핑
매우 짧은 파일만 허용하는 파일 시스템에서 작동하는 특수 코드 활성화
MS-DOS와 같은 이름.

--도움
--target-help
아무 것도 사전 처리하는 대신 모든 명령줄 옵션을 설명하는 텍스트를 인쇄합니다.

-v 상세 모드. 실행 시작 시 GNU CPP의 버전 번호를 출력하고,
포함 경로의 최종 형식을 보고합니다.

-H 다른 일반 활동과 함께 사용된 각 헤더 파일의 이름을 인쇄하십시오. 각
이름은 들여 쓰기가 얼마나 깊은지 보여줍니다. #포함 스택입니다. 미리 컴파일된 헤더
유효하지 않은 것으로 판명된 경우에도 파일도 인쇄됩니다. 잘못된 미리 컴파일된
헤더 파일은 다음과 같이 인쇄됩니다. ...NS 그리고 유효한 ...! .

-번역
--번역
GNU CPP의 버전 번호를 출력하십시오. 대시 한 번으로 평소와 같이 전처리를 진행합니다.
두 개의 대시로 즉시 종료하십시오.

환경


이 섹션에서는 CPP 작동 방식에 영향을 주는 환경 변수에 대해 설명합니다. 당신은 할 수 있습니다
그것들을 사용하여 포함 파일을 검색할 때 사용할 디렉토리 또는 접두어를 지정하거나
종속성 출력을 제어합니다.

다음과 같은 옵션을 사용하여 검색할 장소를 지정할 수도 있습니다. -I, 제어
다음과 같은 옵션이 있는 종속성 출력 -M. 이들은 환경 변수보다 우선합니다.
이는 차례로 GCC의 구성보다 우선합니다.

CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
각 변수의 값은 특수 문자로 구분된 디렉토리 목록입니다.
처럼 PATH, 헤더 파일을 찾을 수 있습니다. 특별한 캐릭터,
"PATH_SEPARATOR"는 대상에 따라 다르며 GCC 빌드 시 결정됩니다. 마이크로소프트
Windows 기반 대상은 세미콜론이며 거의 모든 다른 대상의 경우
콜론.

CPATH 지정된 것처럼 검색할 디렉토리 목록을 지정합니다. -I하지만,
주어진 경로 후에 -I 명령줄의 옵션. 이 환경 변수
사전 처리되는 언어에 관계없이 사용됩니다.

나머지 환경 변수는 특정 프로세스를 사전 처리할 때만 적용됩니다.
표시된 언어. 각각은 다음과 같이 검색할 디렉토리 목록을 지정합니다.
로 지정 -아이시스템, 그러나 주어진 경로 후에 -아이시스템 옵션
명령 행.

이 모든 변수에서 빈 요소는 컴파일러에게 현재를 검색하도록 지시합니다.
작업 디렉토리. 빈 요소는 경로의 시작이나 끝에 나타날 수 있습니다. 을위한
예를 들어 값이 CPATH ":/special/include"이며, 다음과 같은 효과가 있습니다.
-나는. -나/특별/포함.

DEPENDENCIES_OUTPUT
이 변수가 설정되면 해당 값은 Make 기반의 종속성을 출력하는 방법을 지정합니다.
컴파일러가 처리하는 비시스템 헤더 파일에 시스템 헤더 파일은
종속성 출력에서 ​​무시됩니다.

의 가치 DEPENDENCIES_OUTPUT 파일 이름일 수 있으며 이 경우 Make 규칙
소스 파일 이름에서 대상 이름을 추측하여 해당 파일에 기록됩니다. 아니면 그
값은 형식을 가질 수 있습니다. 파일 목표, 이 경우 규칙이 파일에 기록됩니다. 파일
사용 목표 대상 이름으로.

즉, 이 환경 변수는 옵션을 결합하는 것과 같습니다. -MM
-MF, 선택 사항 -산 스위치도.

SUNPRO_DEPENDENCIES
이 변수는 다음과 같습니다. DEPENDENCIES_OUTPUT (위 참조), 그 시스템을 제외하고
헤더 파일은 무시되지 않으므로 -M 보다는 -MM. 그러나, 그
기본 입력 파일에 대한 종속성은 생략됩니다.

onworks.net 서비스를 사용하여 온라인으로 aarch64-linux-gnu-cpp-4.8 사용


Ad


Ad

최신 Linux 및 Windows 온라인 프로그램