/E(stdout으로 전처리)
C 및 C++ 원본 파일을 전처리하고 전처리된 파일을 표준 출력 디바이스에 복사합니다.
구문
/E
설명
이 프로세스에서는 모든 전처리기 지시문이 수행되고 매크로 확장이 수행되며 주석이 제거됩니다. 전처리된 출력에서 주석을 유지하려면 /C(전처리 중 주석 유지) 컴파일러 옵션도 사용합니다.
/E 는 조건부 컴파일을 위해 전처리기 지시문에 의해 제거된 각 포함된 파일의 시작과 끝과 줄 주위에 지시문을 출력에 추가 #line
합니다. 이러한 지시문은 전처리된 파일의 줄을 다시 매깁니다. 따라서 이후 처리 단계에서 발생하는 오류는 전처리된 파일의 줄이 아닌 원래 원본 파일의 줄 번호를 참조합니다.
/E 옵션은 컴파일을 표시하지 않습니다. 컴파일을 위해 전처리된 파일을 다시 제출해야 합니다. /E는 /FA, /Fa 및 /Fm 옵션의 출력 파일도 표시하지 않습니다. 자세한 내용은 /FA, /Fa(목록 파일) 및 /Fm(이름 맵파일)을 참조하세요.
지시문을 표시하지 않는 #line
대신 /EP(#line 지시문 없이 stdout에 전처리) 옵션을 사용합니다.
전처리된 출력을 대신 파일에 보내려면 /P(파일에 stdout
전처리) 옵션을 대신 사용합니다.
지시문을 표시하지 않으며 #line
전처리된 출력을 파일로 보내려면 /P 및 /EP를 함께 사용합니다.
미리 컴파일된 헤더는 /E 옵션과 함께 사용할 수 없습니다.
별도의 파일로 전처리할 때는 토큰 뒤에 공백이 내보내지지 않습니다. 이로 인해 잘못된 프로그램이 발생하거나 의도하지 않은 부작용이 발생할 수 있습니다. 다음 프로그램이 성공적으로 컴파일됩니다.
#define m(x) x
m(int)main( )
{
return 0;
}
그러나 다음을 사용하여 컴파일하는 경우:
cl -E test.cpp > test2.cpp
int main
test2.cpp 잘못되었습니다 intmain
.
Visual Studio 개발 환경에서 이 컴파일러 옵션을 설정하려면
프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.
구성 속성>C/C++>명령줄 속성 페이지를 선택합니다.
추가 옵션 상자에 컴파일러 옵션을 입력합니다.
프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면
- GeneratePreprocessedFile을(를) 참조하세요.
예시
다음 명령줄은 전처리 ADD.C
하고, 주석을 보존하고, 지시문을 추가하고 #line
, 표준 출력 디바이스에 결과를 표시합니다.
CL /E /C ADD.C