컴파일러 옵션 사전순 목록
이 테이블에는 컴파일러 옵션의 사전순 목록이 포함되어 있습니다. 범주별 컴파일러 옵션 목록은 범주 문서에 나열된 컴파일러 옵션을 참조하세요.
컴파일러 옵션
옵션 | 목적 |
---|---|
@ |
지시 파일을 지정합니다. |
/? |
컴파일러 옵션을 나열합니다. |
/AI<dir> |
지시문에 전달된 파일 참조를 확인하기 위해 검색할 #using 디렉터리를 지정합니다. |
/analyze |
코드 분석을 활성화합니다. |
/arch |
최소 CPU 아키텍처 요구 사항. |
/arm64EC |
arm64EC ABI와 호환되는 코드를 생성합니다. |
/await |
코루틴(다시 실행 가능한 함수) 확장을 사용하도록 설정합니다. |
/await:strict |
이전 언어 버전에서 표준 C++20 코루틴 지원을 사용하도록 설정합니다. |
/bigobj |
.obj 파일에서 주소 지정 가능한 섹션의 수를 늘립니다. |
/C |
전처리하는 동안 주석을 유지합니다. |
/c |
링크하지 않고 컴파일합니다. |
/cgthreads |
최적화 및 코드 생성에 사용할 cl.exe 스레드 수를 지정합니다. |
/clr |
공용 언어 런타임에 실행할 출력 파일을 생성합니다. |
/clr:implicitKeepAlive- |
의 암시적 방출을 System::GC::KeepAlive(this) 끕니다. |
/clr:initialAppDomain |
Visual C++ 2002의 초기 AppDomain 동작을 사용하도록 설정합니다. |
/clr:netcore |
.NET Core 런타임을 대상으로 하는 어셈블리를 생성합니다. |
/clr:noAssembly |
어셈블리를 생성하지 마세요. |
/clr:nostdimport |
필요한 어셈블리를 암시적으로 가져오지 마세요. |
/clr:nostdlib |
어셈블리를 검색할 때 시스템 .NET Framework 디렉터리를 무시합니다. |
/clr:pure |
IL 전용 출력 파일(네이티브 실행 코드 없음)을 생성합니다. |
/clr:safe |
IL 전용 확인 가능한 출력 파일을 생성합니다. |
/constexpr:backtrace<N> |
진단에 N constexpr 평가를 표시합니다(기본값: 10). |
/constexpr:depth<N> |
평가에 대한 constexpr 재귀 깊이 제한(기본값: 512). |
/constexpr:steps<N> |
constexpr N단계 후 평가 종료(기본값: 100000) |
/D<name>{=|#}<text> |
상수와 매크로를 정의합니다. |
/diagnostics |
진단 형식: 열 정보를 인쇄합니다. |
/diagnostics:caret[-] |
진단 형식: 열과 표시된 원본 줄을 인쇄합니다. |
/diagnostics:classic |
레거시 진단 형식을 사용합니다. |
/doc |
XML 파일에 대해 문서 주석을 처리합니다. |
/E |
전처리기 출력을 표준 출력에 복사합니다. |
/EHa |
C++ 예외 처리를 사용하도록 설정합니다(SEH 예외 포함). |
/EHc |
extern "C" 기본값은 nothrow 입니다. |
/EHr |
항상 런타임 종료 검사를 생성 noexcept 합니다. |
/EHs |
C++ 예외 처리를 사용하도록 설정합니다(SEH 예외 없음). |
/EP |
전처리기 출력을 표준 출력에 복사합니다. |
/errorReport |
사용되지 않음. WER(Windows 오류 보고) 설정은 오류 보고를 제어합니다. |
/execution-charset |
실행 문자 집합을 설정합니다. |
/experimental:log |
실험적 구조적 SARIF 출력을 사용하도록 설정합니다. |
/experimental:module |
실험적 모듈 지원을 사용하도록 설정합니다. |
/exportHeader |
입력 인수로 지정된 헤더 단위 파일(.ifc )을 만듭니다. |
/external:anglebrackets |
포함된 <> 모든 헤더를 외부로 처리합니다. |
/external:env:<var> |
외부 헤더의 위치를 사용하여 환경 변수를 지정합니다. |
/external:I <path> |
외부 헤더의 위치를 지정합니다. |
/external:templates[-] |
템플릿 인스턴스화 체인에서 경고 수준을 평가합니다. |
/external:W<n> |
외부 헤더에 대한 경고 수준을 설정합니다. |
/F |
스택 크기를 설정합니다. |
/FA |
어셈블리 목록 파일을 구성합니다. |
/Fa |
어셈블리 목록 파일을 만듭니다. |
/fastfail |
빠른 실패 모드를 사용하도록 설정합니다. |
/favor:<blend|AMD64|INTEL64|ATOM> |
지정된 아키텍처나 아키텍처 범주에 최적화된 코드를 생성합니다. |
/FC |
진단 텍스트에서 cl.exe 전달된 소스 코드 파일의 전체 경로를 표시합니다. |
/Fd |
프로그램 데이터베이스 파일 이름을 바꿉니다. |
/Fe |
실행 파일 이름을 바꿉니다. |
/feature |
아키텍처 기능을 사용하도록 설정합니다.17.10 |
/FI<file> |
지정된 포함 파일을 전처리합니다. |
/Fi |
전처리된 출력 파일 이름을 지정합니다. |
/Fm |
맵 파일을 만듭니다. |
/Fo |
개체 파일을 만듭니다. |
/Fp |
미리 컴파일된 헤더 파일 이름을 지정합니다. |
/fp:contract |
코드를 생성할 때 부동 소수점 수축을 고려합니다. |
/fp:except[-] |
코드를 생성할 때 부동 소수점 예외를 고려합니다. |
/fp:fast |
"빠른" 부동 소수점 모델; 결과는 예측하기 어렵습니다. |
/fp:precise |
"정확한" 부동 소수점 모델; 결과를 예측할 수 있습니다. |
/fp:strict |
"strict" 부동 소수점 모델(의미) /fp:except . |
/fpcvt:BC |
이전 버전과 호환되는 부동 소수점에서 부호 없는 정수 변환으로 변환합니다. |
/fpcvt:IA |
부호 없는 정수 변환 동작에 대한 Intel 네이티브 부동 소수점입니다. |
/FR , /Fr |
생성된 브라우저 파일의 .sbr 이름입니다. /Fr 는 사용되지 않습니다. |
/FS |
PDB 파일에 쓰기를 강제로 MSPDBSRV.EXE 통해 직렬화합니다. |
/fsanitize |
AddressSanitizer와 같은 소독제 계측을 컴파일할 수 있습니다. |
/fsanitize-coverage |
LibFuzzer와 같은 라이브러리에 대한 코드 검사 계측 컴파일을 사용하도록 설정합니다. |
/Ft<dir> |
에 대해 생성된 헤더 파일의 위치입니다 #import . |
/FU<file> |
지시문에 전달된 #using 것처럼 파일 이름을 강제로 사용합니다. |
/Fx |
삽입된 코드와 소스 파일을 병합합니다. |
/GA |
Windows 애플리케이션에 맞게 최적화합니다. |
/Gd |
__cdecl 호출 규칙을 사용합니다(x86 (x86 전용) |
/Ge |
사용되지 않음. 스택 프로브를 활성화합니다. |
/GF |
문자열 풀링을 사용합니다. |
/GH |
후크 함수 _pexit 를 호출합니다. |
/Gh |
후크 함수 _penter 를 호출합니다. |
/GL[-] |
전체 프로그램 최적화를 사용합니다. |
/Gm[-] |
사용되지 않음. 최소 재빌드를 사용합니다. |
/GR[-] |
RTTI(런타임 형식 정보)를 사용합니다. |
/Gr |
__fastcall 호출 규칙을 사용합니다(x86 (x86 전용) |
/GS[-] |
버퍼 보안을 검사합니다. |
/Gs[n] |
스택 프로브를 제어합니다. |
/GT |
정적 스레드 로컬 스토리지를 사용하여 할당한 데이터의 파이버 안전을 지원합니다. |
/Gu[-] |
고유 함수에 고유 주소가 있는지 확인합니다. |
/guard:cf[-] |
제어 흐름 가드 보안 검사를 추가합니다. |
/guard:ehcont[-] |
EH 연속 메타데이터를 사용하도록 설정합니다. |
/Gv |
__vectorcall 호출 규칙을 사용합니다(x86 및 x64에만 해당). |
/Gw[-] |
전체 프로그램 전역 데이터 최적화를 사용하도록 설정합니다. |
/GX[-] |
사용되지 않음. 동기 예외 처리를 사용합니다. 대신 /EH 를 사용하세요. |
/Gy[-] |
함수 수준 링크를 사용합니다. |
/GZ |
사용되지 않음. 빠른 검사를 사용하도록 설정합니다. (와 동일 /RTC1 ) |
/Gz |
__stdcall 호출 규칙을 사용합니다(x86 (x86 전용) |
/H |
사용되지 않음. 외부 공개 이름의 길이를 제한합니다. |
/headerName |
지정된 헤더에서 헤더 단위를 작성합니다. |
/headerUnit |
지정된 헤더의 헤더 단위 파일(.ifc )을 찾을 위치를 지정합니다. |
/HELP |
컴파일러 옵션을 나열합니다. |
/homeparams |
레지스터에 전달된 매개 변수를 함수 시작 시 스택의 해당 위치에 기록합니다. 이 컴파일러 옵션은 x64 컴파일러(네이티브 및 크로스 컴파일)에만 해당합니다. |
/hotpatch |
핫 패치할 수 있는 이미지를 만듭니다. |
/I<dir> |
포함 파일의 디렉터리를 검색합니다. |
/ifcOutput |
빌드된 .ifc 파일의 출력 파일 이름 또는 디렉터리를 지정합니다. |
/interface |
입력 파일을 모듈 인터페이스 단위로 처리합니다. |
/internalPartition |
입력 파일을 내부 파티션 단위로 처리합니다. |
/J |
기본 char 형식을 변경합니다. |
/jumptablerdata |
섹션에 switch case 문 점프 테이블을 배치합니다 .rdata . |
/JMC |
네이티브 C++ 내 코드만 디버깅을 지원합니다. |
/kernel |
컴파일러 및 링커는 Windows 커널에서 실행할 수 있는 이진 파일을 만듭니다. |
/LD |
DLL(동적 연결 라이브러리)을 만듭니다. |
/LDd |
디버그 DLL(동적 연결 라이브러리)을 만듭니다. |
/link |
지정된 옵션을 LINK에 전달합니다. |
/LN |
MSIL .netmodule 을 만듭니다. |
/MD |
MSVCRT.lib를 사용하여 다중 스레드 DLL을 만들기 위해 컴파일합니다. |
/MDd |
MSVCRTD.lib를 사용하여 디버그 다중 스레드 DLL을 만들기 위해 컴파일합니다. |
/MP |
여러 개의 소스 파일을 동시에 빌드합니다. |
/MT |
LIBCMT.lib를 사용하여 다중 스레드 실행 파일을 만들기 위해 컴파일합니다. |
/MTd |
LIBCMTD.lib를 사용하여 디버그 다중 스레드 실행 파일을 만들기 위해 컴파일합니다. |
/nologo |
초기 화면 배너를 표시하지 않습니다. |
/O1 |
작은 코드를 만듭니다. |
/O2 |
빠른 코드를 만듭니다. |
/Ob<n> |
인라인 확장을 제어합니다. |
/Od |
최적화를 사용하지 않습니다. |
/Og |
사용되지 않음. 전역 최적화를 사용합니다. |
/Oi[-] |
내장 함수를 생성합니다. |
/openmp |
#pragma omp 소스 코드에서 사용하도록 설정합니다. |
/openmp:experimental |
OpenMP 2.0 언어 확장을 사용하도록 설정하고 OpenMP 3.0 이상의 언어 확장을 선택합니다. |
/openmp:llvm |
LLVM 런타임을 사용하는 OpenMP 언어 확장 |
/options:strict |
인식할 수 없는 컴파일러 옵션은 오류입니다. |
/Os |
코드 크기를 우선으로 합니다. |
/Ot |
코드 속도를 우선으로 합니다. |
/Ox |
/GF 또는 /Gy를 포함하지 않는 /O2의 하위 집합입니다. |
/Oy |
프레임 포인터를 생략합니다. (x86 전용) |
/P |
전처리기 출력을 파일에 씁니다. |
/PD |
모든 매크로 정의를 인쇄합니다. |
/permissive[-] |
표준 규칙 모드를 설정합니다. |
/PH |
전처리할 때 생성 #pragma file_hash 합니다. |
/presetPadding |
스택 기반 클래스 형식에 대한 패딩을 초기화하지 않습니다. |
/Qfast_transcendentals |
빠른 초월수를 생성합니다. |
/QIfist |
사용되지 않음. 부동 소수점 형식에서 정수 계열 형식으로 변환해야 할 때 도우미 함수 _ftol 이 호출되지 않도록 합니다. (x86 전용) |
/Qimprecise_fwaits |
fwait 블록 내에 있는 try 명령을 제거합니다. |
/QIntel-jcc-erratum |
Intel JCC erratum 마이크로코드 업데이트의 성능 영향을 완화합니다. |
/Qpar-report:<n> |
자동 병렬화에 대한 보고 수준을 사용하도록 설정합니다. |
/Qpar |
루프 자동 병렬화를 사용하도록 설정합니다. |
/Qsafe_fp_loads |
부동 소수점 값에 대한 정수 이동 명령을 사용하고 특정 부동 소수점 부하 최적화를 사용하지 않도록 설정합니다. |
/Qspectre[-] |
스펙터 공격 클래스에 대해 CVE 2017-5753에 대한 완화를 사용하도록 설정합니다. |
/Qspectre-load |
모든 부하 명령에 대한 직렬화 지침을 생성합니다. |
/Qspectre-load-cf |
메모리를 로드하는 모든 제어 흐름 명령에 대한 직렬화 지침을 생성합니다. |
/Qvec-report:<n> |
자동 벡터화에 대한 보고 수준을 사용하도록 설정합니다. |
/reference |
명명된 모듈 IFC를 사용합니다. |
/RTC1 |
빠른 런타임 검사를 사용하도록 설정합니다(해당 /RTCsu ). |
/RTCc |
런타임에 더 작은 형식 검사로 변환합니다. |
/RTCs |
스택 프레임 런타임 검사를 사용하도록 설정합니다. |
/RTCu |
초기화되지 않은 로컬 사용량 검사를 사용하도록 설정합니다. |
/scanDependencies |
C++ 표준 JSON 형식으로 모듈 종속성을 나열합니다. |
/sdl |
더 많은 보안 기능 및 경고를 사용하도록 설정합니다. |
/showIncludes |
컴파일하는 동안 전체 포함 파일의 목록을 표시합니다. |
/source-charset |
원본 문자 집합을 설정합니다. |
/sourceDependencies |
모든 원본 수준 종속성을 나열합니다. |
/sourceDependencies:directives |
모듈 및 헤더 단위 종속성을 나열합니다. |
/std:c++14 |
C++14 표준 ISO/IEC 14882:2014(기본값). |
/std:c++17 |
C++17 표준 ISO/IEC 14882:2017. |
/std:c++20 |
C++20 표준 ISO/IEC 14882:2020. |
/std:c++latest |
최신 초안 C++ 표준 미리 보기 기능입니다. |
/std:c11 |
C11 표준 ISO/IEC 9899:2011. |
/std:c17 |
C17 표준 ISO/IEC 9899:2018. |
/std:clatest |
최신 초안 C 표준 미리 보기 기능입니다. |
/TC |
모든 원본 파일이 C로 지정됩니다. |
/Tc |
C 소스 파일을 지정합니다. |
/TP |
모든 원본 파일이 C++입니다. |
/Tp |
C++ 소스 파일을 지정합니다. |
/translateInclude |
로 import 처리합니다#include . |
/U<name> |
미리 정의된 매크로를 제거합니다. |
/u |
미리 정의된 모든 매크로를 제거합니다. |
/utf-8 |
원본 및 실행 문자 집합을 UTF-8로 설정합니다. |
/V |
사용되지 않음. 버전 문자열을 설정합니다. |
/validate-charset |
호환되는 문자에 대해서만 UTF-8 파일의 유효성을 검사합니다. |
/vd{0|1|2} |
숨겨진 vtordisp 클래스 멤버를 사용하도록 설정하거나 표시하지 않습니다. |
/vlen |
벡터 길이를 지정합니다. |
/vmb |
멤버의 포인터에 best case를 사용합니다. |
/vmg |
멤버의 포인터에 full generality를 사용합니다. |
/vmm |
다중 상속을 선언합니다. |
/vms |
단일 상속을 선언합니다. |
/vmv |
가상 상속을 선언합니다. |
/volatile:iso |
일시적 액세스에서 보장되지 않는 의미 체계를 획득/해제합니다. |
/volatile:ms |
일시적 액세스에서 보장되는 의미 체계를 획득/해제합니다. |
/volatileMetadata |
휘발성 메모리 액세스에 대한 메타데이터를 생성합니다. |
/w |
모든 경고를 사용하지 않도록 설정합니다. |
/W0 , /W1 , /W2 , /W3 /W4 |
출력 경고 수준을 설정합니다. |
/w1<n> , /w2<n> , /w3<n> /w4<n> |
지정된 경고에 대한 경고 수준을 설정합니다. |
/Wall |
기본적으로 사용하지 않도록 설정된 경고를 포함하여 모든 경고를 사용하도록 설정합니다. |
/wd<n> |
지정된 경고를 사용하지 않도록 설정합니다. |
/we<n> |
지정된 경고를 오류로 처리합니다. |
/WL |
명령줄에서 C++ 소스 코드를 컴파일할 때 오류 및 경고 메시지에 대해 한 줄 진단을 사용하도록 설정합니다. |
/wo<n> |
지정된 경고를 한 번만 표시합니다. |
/Wv:xx[.yy[.zzzzz]] |
지정된 버전의 컴파일러 다음에 도입된 경고를 사용하지 않도록 설정합니다. |
/WX |
경고를 오류로 처리합니다. |
/X |
표준 포함 디렉터리를 무시합니다. |
/Y- |
현재 빌드에서 미리 컴파일된 다른 모든 헤더 컴파일러 옵션을 무시합니다. |
/Yc |
파일을 만듭니다 .PCH . |
/Yd |
사용되지 않음. 모든 개체 파일에 완전한 디버깅 정보를 저장합니다. 대신 /Zi 를 사용하세요. |
/Yl |
디버그 라이브러리를 만들 때 PCH 참조를 삽입합니다. |
/Yu |
빌드하는 동안 미리 컴파일된 헤더 파일을 사용합니다. |
/Z7 |
C 7.0 호환 디버깅 정보를 생성합니다. |
/Za |
C 코드에서 일부 C89 언어 확장을 사용하지 않도록 설정합니다. |
/Zc:__cplusplus[-] |
매크로를 __cplusplus 사용하여 지원되는 표준(기본적으로 해제됨)을 보고합니다. |
/Zc:__STDC__ |
매크로를 __STDC__ 사용하여 C 표준이 지원됨을 보고합니다(기본적으로 해제됨). |
/Zc:alignedNew[-] |
C++17에 과도하게 정렬된 동적 할당을 사용하도록 설정합니다(기본적으로 C++17에서 사용). |
/Zc:auto[-] |
(기본적으로 켜기)에 대한 auto 새 표준 C++ 의미를 적용합니다. |
/Zc:char8_t[-] |
C++20 네이티브 리터럴 u8 지원을 const char8_t 사용하거나 사용하지 않도록 설정합니다(아래 제외 /std:c++20 ). |
/Zc:enumTypes[-] |
형식 추론에 표준 enum C++ 규칙을 사용하도록 설정합니다(기본적으로 해제됨). |
/Zc:externC[-] |
함수에 extern "C" 표준 C++ 규칙을 적용합니다(암시적 /permissive- ). |
/Zc:externConstexpr[-] |
변수에 대한 constexpr 외부 연결을 사용하도록 설정합니다(기본적으로 꺼져 있음). |
/Zc:forScope[-] |
표준 C++ for 범위 지정 규칙 적용(기본적으로 설정). |
/Zc:gotoScope |
지역 변수 초기화에 대한 표준 C++ goto 규칙을 적용합니다(암시) /permissive- . |
/Zc:hiddenFriend[-] |
표준 C++ 숨겨진 친구 규칙 적용(암시)/permissive- |
/Zc:implicitNoexcept[-] |
필수 함수에서 암시적 noexcept 사용을 설정합니다(기본적으로 사용). |
/Zc:inline[-] |
COMDAT이거나 내부 링크만 있는 경우(기본적으로 해제) 참조되지 않은 함수 또는 데이터를 제거합니다. |
/Zc:lambda[-] |
제네릭 람다에서 규칙 모드 구문 검사를 위해 새 람다 프로세서를 사용하도록 설정합니다. |
/Zc:noexceptTypes[-] |
C++17 noexcept 규칙을 적용합니다(기본적으로 C++17 이상에서). |
/Zc:nrvo[-] |
선택적 복사를 사용하도록 설정하고 엘리션을 이동합니다(기본적으로 아래 /O2 또는 /permissive- /std:c++20 그 이상). |
/Zc:preprocessor[-] |
새로운 준수 전처리기를 사용합니다(C11/C17 제외). |
/Zc:referenceBinding[-] |
UDT 임시는 비 const lvalue 참조에 바인딩되지 않습니다(기본적으로 꺼져 있음). |
/Zc:rvalueCast[-] |
표준 C++ 명시적 형식 변환 규칙을 적용합니다(기본적으로 해제됨). |
/Zc:sizedDealloc[-] |
C++14 전역 크기 할당 취소 함수를 사용하도록 설정합니다(기본적으로 켜기). |
/Zc:strictStrings[-] |
문자열 리터럴을 변환하거나 wchar_t* 변환하지 char* 않도록 설정합니다(기본적으로 해제됨). |
/Zc:templateScope[-] |
표준 C++ 템플릿 매개 변수 섀도 규칙을 적용합니다(기본적으로 해제됨). |
/Zc:ternary[-] |
피연산자 형식에 조건부 연산자 규칙을 적용합니다(기본적으로 해제됨). |
/Zc:threadSafeInit[-] |
스레드로부터 안전한 로컬 정적 초기화를 사용하도록 설정합니다(기본적으로 켜기). |
/Zc:throwingNew[-] |
오류 발생을 가정 operator new 합니다(기본적으로 꺼져 있음). |
/Zc:tlsGuards[-] |
TLS 변수 초기화에 대한 런타임 검사를 생성합니다(기본적으로 켜기). |
/Zc:trigraphs |
삼각을 사용하도록 설정합니다(사용되지 않음, 기본적으로 꺼져 있음). |
/Zc:twoPhase[-] |
형식이 일치하지 않는 템플릿 구문 분석 동작을 사용합니다(기본적으로 준수). |
/Zc:wchar_t[-] |
wchar_t 는 typedef가 아닌 네이티브 형식입니다(기본적으로 켜기). |
/Zc:zeroSizeArrayNew[-] |
개체의 크기가 0인 배열에 대한 멤버 new /delete 를 호출합니다(기본적으로 켜기). |
/Ze |
사용되지 않음. C89 언어 확장을 사용하도록 설정합니다. |
/Zf |
병렬 빌드에서 PDB 생성 시간을 개선합니다. |
/ZH:[MD5|SHA1|SHA_256] |
디버그 정보의 체크섬에 대해 MD5, SHA-1 또는 SHA-256을 지정합니다. |
/ZI |
편집하며 계속하기와 호환되는 프로그램 데이터베이스에 디버깅 정보를 포함합니다. (x86 전용) |
/Zi |
완전한 디버깅 정보를 생성합니다. |
/Zl |
파일에서 기본 라이브러리 이름을 제거합니다 .obj . |
/Zm |
미리 컴파일된 헤더 메모리의 할당 제한을 지정합니다. |
/Zo[-] |
최적화된 코드에 대한 보다 풍부한 디버깅 정보를 생성합니다. |
/Zp[n] |
구조체 멤버를 압축합니다. |
/Zs |
구문만 확인합니다. |
/ZW |
Windows 런타임 실행할 출력 파일을 생성합니다. |
17.10 이 옵션은 Visual Studio 2022 버전 17.10부터 사용할 수 있습니다.