--------------------[최적화]------------------------------------------------------
/O1 공간을 최소화합니다.
/O2 속도를 최대화합니다.
/Ob<n> 인라인 확장 (기본값 n=0)
/Od 최적화를 사용하지 않습니다(기본값).
/Og 전역 최적화를 사용합니다.
/Oi[-] 내장 함수를 사용합니다.
/Os 코드 공간을 우선 고려합니다.
/Ot 코드 속도를 우선 고려합니다.
/Ox 최적화를 최대화합니다.
/Oy[-] 프레임 포인터를 생략합니다.
--------------------[코드생성]----------------------------------------------------
/GF 읽기 전용 문자열 풀링을 사용합니다.
/Gm[-] 최소 다시 빌드를 사용합니다.
/Gy[-] 링커 분리 함수를 사용합니다.
/GS[-] 보안 검사를 사용합니다.
/GR[-] C++ RTTI를 사용합니다.
/GX[-] C++ EH를 사용합니다(/EHsc와 동일).
/EHs C++ EH를 사용합니다(SEH 예외 제외).
/EHa C++ EH를 사용합니다(SEH 예외 포함).
/EHc extern "C" 기본값을 nothrow로 설정합니다.
/fp:<except[-]|fast|precise|strict> 부동 소수점 모델 선택:
except[-] - 코드 생성 시 부동 소수점 예외를 고려합니다.
fast - "fast" 부동 소수점 모델입니다. 결과를 예측하기 힘듭니다.
precise - "precise" 부동 소수점 모델입니다. 결과를 예측할 수 있습니다.
strict - "strict" 부동 소수점 모델(/fp:except를 의미)
/Qfast _transcendentals는 /fp:except가 있더라도 인라인 FP 내장을 생성합니다.
/GL[-] 링크 타임 코드 생성을 사용합니다.
/GA Windows 응용 프로그램에 맞게 최적화합니다.
/Ge 모든 함수에 대해 스택 검사를 수행합니다.
/Gs[num] 스택 검사 호출을 제어합니다.
/Gh _penter 함수 호출을 사용합니다.
/GH _pexit 함수 호출을 사용합니다.
/GT 파이버 안전 TLS 액세스를 생성합니다.
/RTC1 빠른 검사를 사용합니다(/RTCsu).
/RTCc 작은 형식 검사로 변환합니다.
/RTCs 스택 프레임 런타임 검사를 수행합니다.
/RTCu 초기화되지 않은 지역 변수가 사용되는지 검사합니다.
/clr[:option] 공용 언어 런타임에 대해 컴파일합니다. 옵션:
pure - IL 전용 출력 파일을 생성합니다(네이티브 실행 코드 제외).
safe - 확인할 수 있는 IL 전용 출력 파일을 생성합니다.
oldSyntax - Visual C++ 2002/2003의 Managed Extensions 구문을 허용합니다.
initialAppDomain - Visual C++ 2002의 초기 AppDomain 동작을 사용합니다.
noAssembly - 어셈블리를 생성하지 않습니다.
/Gd __cdecl 호출 규칙
/Gr __fastcall 호출 규칙
/Gz __stdcall 호출 규칙
/GZ 스택 검사를 사용합니다(/RTCs).
/QIfist[-] ftol() 대신 FIST를 사용합니다.
/hotpatch 핫 패치 가능 이미지에 대한 함수 패딩을 확인합니다.
/arch:<SSE|SSE2> 최소 CPU 아키텍처 요구 사항입니다. 다음 중 하나가 될 수 있습니다.
SSE - SSE를 사용할 수 있는 CPU의 명령을 사용합니다.
SSE2 - SSE2를 사용할 수 있는 CPU의 명령을 사용합니다.
/Qimprecise_fwaits "try" 내부가 아니라 "try" 경계에만 FWAIT를 생성합니다.
--------------------[출력파일]-------------------------------------------------------------------------------------
/Fa[file] 어셈블리 목록 파일 이름을 지정합니다.
/FA[scu] 어셈블리 목록을 구성합니다.
/Fd[file] .PDB 파일 이름을 지정합니다.
/Fe<file> 실행 파일 이름을 지정합니다.
/Fm[file] 맵 파일 이름을 지정합니다.
/Fo<file> 개체 파일 이름을 지정합니다.
/Fp<file> 미리 컴파일된 헤더 파일 이름을 지정합니다.
/Fr[file] 소스 브라우저 파일 이름을 지정합니다.
/FR[file] 확장 .SBR 파일 이름을 지정합니다.
/doc[file] XML 문서 주석을 처리하고 선택적으로 .xdc 파일의 이름을 지정합니다.
--------------------[전처리기]------------------------------------------------------------------------------------
/AI<dir> 어셈블리 검색 경로에 추가합니다.
/FU<file> 어셈블리/모듈을 강제 사용합니다.
/C 주석을 제거하지 않습니다.
/D<name>{=|#}<text> 매크로를 정의합니다.
/E stdout으로 전처리합니다.
/EP #line 없이 stdout으로 전처리합니다.
/P 파일로 전처리합니다.
/Fx 삽입된 코드를 파일에 병합합니다.
/FI<file> 강제 포함 파일 이름을 지정합니다.
/U<name> 미리 정의된 매크로를 제거합니다.
/u 미리 정의된 모든 매크로를 제거합니다.
/I<dir> 포함 검색 경로에 추가합니다.
/X "표준 위치"를 무시합니다.
--------------------[언어]--------------------------------------------------------
/Zi 디버깅 정보를 사용합니다.
/Z7 이전 스타일 디버그 정보를 사용합니다.
/Zp[n] n-바이트 경계에서 구조체를 압축합니다.
/Za 확장명을 사용하지 않습니다.
/Ze 확장명을 사용합니다(기본값).
/Zl .OBJ에서 기본 라이브러리 이름을 생략합니다.
/Zg 함수 프로토타입을 생성합니다.
/Zs 구문 검사만 수행합니다.
/vd{0|1|2} vtordisp를 사용하지 않거나 사용합니다.
/vm<x> 멤버에 대한 포인터 형식입니다.
/Zc:arg1[,arg2] C++ 언어 규칙이며 인수는 다음과 같습니다.
forScope[-] - 표준 C++ 범위 지정 규칙을 적용합니다.
wchar_t[-] - wchar_t는 네이티브 형식이며 형식 정의가 아닙니다.
/ZI 편집하며 계속하기 디버그 정보를 사용합니다.
/openmp OpenMP 2.0 언어 확장을 사용합니다.
--------------------[기타]--------------------------------------------------------
@<file> 옵션 지시 파일
/?, /help 이 도움말 메시지를 인쇄합니다.
/bigobj 확장 개체 형식을 생성합니다.
/c 컴파일만 하고 링크는 하지 않습니다.
/errorReport:option Microsoft에 내부 컴파일러 오류를 보고합니다.
none - 보고서를 보내지 않습니다.
prompt - 즉시 보고서를 보낼지 여부를 묻습니다.
queue - 관리자가 다음에 로그온할 때 보고서를 보낼지 여부를 묻습니다(기본값).
send - 자동으로 보고서를 보냅니다. /FC 진단에 전체 경로 이름을 사용합니다.
/H<num> 외부 이름의 최대 길이입니다.
/J 기본 문자 형식을 unsigned로 지정합니다.
/MP[n] 컴파일하기 위한 프로세스를 'n'개까지 사용합니다.
/nologo 저작권 메시지를 표시하지 않습니다.
/showIncludes 포함 파일의 이름을 표시합니다.
/Tc<source file> 파일을 .c로 컴파일합니다.
/Tp<source file> 파일을 .cpp로 컴파일합니다.
/TC 모든 파일을 .c로 컴파일합니다.
/TP 모든 파일을 .cpp로 컴파일합니다.
/V<string> 버전 문자열을 설정합니다.
/w 모든 경고를 사용하지 않습니다.
/wd<n> 경고 n을 사용하지 않습니다.
/we<n> 경고 n을 오류로 처리합니다.
/wo<n> 경고 n을 한 번 발생시킵니다.
/w<l><n> n에 대해 경고 수준(1-4)을 설정합니다.
/W<n> 경고 수준을 설정합니다(기본값 n=1).
/Wall 모든 경고를 사용합니다.
/WL 한 줄 진단을 사용합니다.
/WX 경로를 오류로 처리합니다.
/Yc[file] .PCH 파일을 만듭니다.
/Yd 모든 .OBJ에 디버그 정보를 입력합니다.
/Yl[sym] 디버그 라이브러리에 .PCH 참조를 삽입합니다.
/Yu[file] .PCH 파일을 사용합니다.
/Y- 모든 PCH 옵션을 사용하지 않습니다.
/Zm<n> 최대 메모리를 할당합니다(기본값의 %).
/Wp64 64비트 이식 경고를 사용합니다.
--------------------[링크]--------------------------------------------------------
/LD .DLL을 만듭니다.
/LDd .DLL 디버그 라이브러리를 만듭니다.
/LN .netmodule을 만듭니다.
/F<num> 스택 크기를 설정합니다.
/link [링커 옵션 및 라이브러리]
/MD MSVCRT.LIB에 링크합니다.
/MT LIBCMT.LIB에 링크합니다.
/MDd MSVCRTD.LIB 디버그 라이브러리에 링크합니다.
/MTd LIBCMTD.LIB 디버그 라이브러리에 링크합니다.