Programming/C

Windows cl.exe option

Tribal 2018. 3. 21. 21:52

cl /help

C:\Users\Tribal\Desktop\test>cl /help
Microsoft (R) C/C++ 최적화 컴파일러 버전 19.00.24215.1(x64)
Copyright (c) Microsoft Corporation. All rights reserved.
 
                         C/C++ 컴파일러 옵션
 
 
                              -최적화-
 
/O1 공간을 최소화합니다.                /O2 속도를 최대화합니다.
/Ob<n> 인라인 확장(기본값 n=0)          /Od 최적화를 사용하지 않습니다(기본값).
/Og 전역 최적화를 사용합니다.           /Oi[-] 내장 함수를 사용합니다.
/Os 코드 공간을 우선 고려합니다.        /Ot 코드 속도를 우선 고려합니다.
/Ox 최적화를 최대화합니다.
/favor:<blend|AMD64|INTEL64|ATOM> 최적화할 프로세서를 선택합니다. 다음 중 하 나일 수 있습니다.
    blend - 여러 가지 x64 프로세서에 대해 최적화되도록 설정합니다.
    AMD64 - 64비트 AMD 프로세서
    INTEL64 - Intel(R)64 아키텍처 프로세서
    ATOM - Intel(R) Atom(TM) 프로세서
 
                             -코드 생성-
 
/Gw[-] 링커 분리 전역 변수를 사용합니다./GF 읽기 전용 문자열 풀링을 사용합니 다.
/Gm[-] 최소 다시 빌드를 사용합니다.     /Gy[-] 링커 분리 함수를 사용합니다.
/GS[-] 보안 검사를 사용합니다.          /GR[-] C++ RTTI를 사용합니다.
/GX[-] C++ EH를 사용합니다(/EHsc와 동일).
/guard:cf[-] CFG 사용(제어 흐름 보호)   /EHs C++ EH를 사용합니다(SEH 예외 제 외).
/EHa C++ EH를 사용합니다(SEH 예외 포함).
/EHc extern "C" 기본값을 nothrow로 설정합니다.
/EHr은 항상 noexcept 런타임 종료 검사를 생성합니다.
/fp:<except[-]|fast|precise|strict> 부동 소수점 모델 선택:
    except[-] - 코드 생성 시 부동 소수점 예외를 고려합니다.
    fast - "fast" 부동 소수점 모델입니다. 결과를 예측하기 힘듭니다.
    precise - "precise" 부동 소수점 모델입니다. 결과를 예측할 수 있습니다.
    strict - "strict" 부동 소수점 모델(/fp:except를 의미)
/Qfast_transcendentals는 /fp:except가 있더라도 인라인 FP 내장을 생성합니다.
/Qpar[-] 병렬 코드 생성을 사용합니다.
/Qpar-report:1 자동 평행화 도우미 진단이며 평행화된 루프를 나타냅니다.
/Qpar-report:2 자동 평행화 도우미 진단이며 평행화되지 않은 루프를 나타냅니다.
/Qvec-report:1 자동 벡터화 도우미 진단이며 벡터화된 루프를 나타냅니다.
/Qvec-report:2 자동 벡터화 도우미 진단이며 벡터화되지 않은 루프를 나타냅니다.
(계속하려면 <return> 키를 누르십시오.)
/GL[-] 링크 타임 코드 생성을 사용합니다./volatile:<iso|ms> volatile 모델 선택:
    iso - volatile 액세스에서 보장되지 않는 의미 체계를 가져오거나 해제합니다.
    ms  - volatile 액세스에서 보장되는 의미 체계를 가져오거나 해제합니다.
/GA Windows 응용 프로그램에 맞게 최적화합니다.
/Ge 모든 함수에 대해 스택 검사를 수행합니다.
/Gs[num] 스택 검사 호출을 제어합니다.   /Gh _penter 함수 호출을 사용합니다.
/GH _pexit 함수 호출을 사용합니다.      /GT 파이버 안전 TLS 액세스를 생성합니다.
/RTC1 빠른 검사를 사용합니다(/RTCsu).   /RTCc 작은 형식 검사로 변환합니다.
/RTCs 스택 프레임 런타임 검사를 수행합니다.
/RTCu 초기화되지 않은 지역 변수가 사용되는지 검사합니다.
/clr[:option] 공용 언어 런타임에 대해 컴파일합니다. 옵션:
    pure - IL 전용 출력 파일을 생성합니다(네이티브 실행 코드 제외).
    safe - 확인할 수 있는 IL 전용 출력 파일을 생성합니다.
    initialAppDomain - Visual C++ 2002의 초기 AppDomain 동작을 사용합니다.
    noAssembly - 어셈블리를 생성하지 않습니다.
    nostdlib - 기본 \clr 디렉터리를 무시합니다.
/homeparams 레지스터에 전달된 매개 변수를 스택에 강제로 씁니다.
/GZ 스택 검사를 사용합니다(/RTCs).
/arch:AVX AVX를 사용할 수 있는 CPU의 명령을 사용합니다.
/arch:AVX2 AVX2를 사용할 수 있는 CPU의 명령을 사용합니다.
/Gv __vectorcall 호출 규칙
 
                              -출력 파일-
 
/Fa[file] 어셈블리 목록 파일 이름을 지정합니다.
/FA[scu] 어셈블리 목록을 구성합니다.    /Fd[file] .PDB 파일 이름을 지정합니다.
/Fe<file> 실행 파일 이름을 지정합니다.  /Fm[file] 맵 파일 이름을 지정합니다.
/Fo<file> 개체 파일 이름을 지정합니다.
/Fp<file> 미리 컴파일된 헤더 파일 이름을 지정합니다.
/Fr[file] 소스 브라우저 파일 이름을 지정합니다.
/FR[file] 확장 .SBR 파일 이름을 지정합니다.
/Fi[file] 전처리 파일의 이름을 지정합니다.
/Fd: <file> .PDB 파일의 이름을 지정합니다.
/Fe: <file> 실행 파일의 이름을 지정합니다.
/Fm: <file> 맵 파일의 이름을 지정합니다.
/Fo: <file> 개체 파일의 이름을 지정합니다.
/Fp: <file> .PCH 파일의 이름을 지정합니다.
/FR: <file> 확장 .SBR 파일의 이름을 지정합니다.
/Fi: <file> 전처리 파일의 이름을 지정합니다.
/doc[file] XML 문서 주석을 처리하고 선택적으로 .xdc 파일의 이름을 지정합니다.
(계속하려면 <return> 키를 누르십시오.)
 
                              -전처리기-
 
/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에서 기본 라이브러리 이름을 생략합니다.
/Zs 구문 검사만 수행합니다.
/vd{0|1|2} vtordisp를 사용하지 않거나 사용합니다.
/vm<x> 멤버에 대한 포인터 형식입니다.
/Zc:arg1[,arg2] C++ 언어 규칙이며 인수는 다음과 같습니다.
  forScope[-]           표준 C++ 범위 지정 규칙을 적용합니다.
  wchar_t[-]            wchar_t는 네이티브 형식이며 형식 정의가 아닙니다.
  auto[-]               auto에 새 표준 C++의 의미를 적용합니다.
  trigraphs[-]          삼중자를 사용합니다(기본적으로 사용 안 함).
  rvalueCast[-]         표준 C++ 명시적 형식 변환 규칙을 적용합니다.
  strictStrings[-]      [char|wchar_t]* 변환에*
                        문자열 리터럴 사용 안 함(기본적으로 사용 안 함)
  implicitNoexcept[-]   필수 함수에서 암시적인 noexcept를 사용합니다.
  threadSafeInit[-]     스레드로부터 안전한 로컬 정적 초기화 사용
  inline[-]             COMDAT이거나 내부 링크만 있는 경우(기본적으로 해제)
                        참조되지 않은 함수 또는 데이터를 제거합니다.
  sizedDealloc[-]       전역으로 크기가 지정된 C++14 할당 해제 함수를
                         사용합니다(기본적으로 설정됨).
  throwingNew[-]        new 연산자가 실패 시 throw된다고 간주합니다(기본적으 로 해제됨).
  referenceBinding[-]   임시 개체는 비const lvalue 참조에
                        바인딩되지 않습니다(기본적으로 해제됨).
/ZH:SHA_256             디버그 정보의 파일 체크섬에 SHA256을 사용합니다(실험 적).
 
/Zo[-] 최적화된 코드에 대해 더욱 자세한 디버깅 정보를 생성합니다(기본적으로  설정됨).
/ZW WinRT 언어 확장을 사용합니다.
/constexpr:depth<N>     constexpr에 대한 재귀 깊이 제한으로
                        <N>을 사용합니다(기본값: 512).
(계속하려면 <return> 키를 누르십시오.)
/constexpr:backtrace<N> 진단에서 <N>개의 constexpr 평가를
                        표시합니다(기본값: 10).
/constexpr:steps<N>     <N>단계 후 constexpr 평가를
                        종료합니다(기본값: 100000).
/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 저작권 메시지를 표시하지 않습니다.
/sdl 추가 보안 기능 및 경고를 사용합니다.
/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> 최대 메모리를 할당합니다(기본값의 %).
/FS를 지정하면 MSPDBSRV.EXE가 강제로 사용됩니다.
/await는 다시 시작 가능한 함수 확장명을 사용하도록 설정합니다.
/Wv:xx[.yy[.zzzzz]] xx.yy.zzzzz 버전 이후 발생한 경고를 비활성화합니다.
/source-charset:<iana-name>|.nnnn 원본 문자 집합을 설정합니다.
/execution-charset:<iana-name>|.nnnn 실행 문자 집합을 설정합니다.
/utf-8 원본 및 실행 문자 집합을 UTF-8로 설정합니다.
(계속하려면 <return> 키를 누르십시오.)
/validate-charset[-] 올바른 문자에 대한 UTF-8 파일의 유효성만 검사합니다.
 
                                -링크-
 
/LD .DLL을 만듭니다.                    /LDd .DLL 디버그 라이브러리를 만듭니 다.
/LN .netmodule을 만듭니다.              /F<num> 스택 크기를 설정합니다.
/link [링커 옵션 및 라이브러리]         /MD MSVCRT.LIB에 링크합니다.
/MT LIBCMT.LIB에 링크합니다.
/MDd MSVCRTD.LIB 디버그 라이브러리에 링크합니다.
/MTd LIBCMTD.LIB 디버그 라이브러리에 링크합니다.
 
                              -코드 분석-
 
/analyze[-] 네이티브 분석을 사용하도록 설정
/analyze:quiet[-] 콘솔에 경고를 표시하지 않음
/analyze:log<name> 파일에 경고 기록     /analyze:autolog 기록 대상: *.pftlog
/analyze:autolog:ext<ext> *.<ext>에 기록/analyze:autolog- 로그 파일 없음
/analyze:WX- 심각하지 않은 경고         /analyze:stacksize<num> 최대 스택 프 레임
/analyze:max_paths<num> 최대 경로
/analyze:only 분석하되 코드를 생성하지 않음
 
 
cs