Visual C/C++ 14.0 Compiler Options
C/C++ COMPILER OPTIONS
-OPTIMIZATION-
/Od disable optimizations (default)
/O1 minimize space
/O2 maximize speed
/Ob<n> inline expansion (default n=0)
/Og enable global optimization
/Oi[-] enable intrinsic functions
/Os favor code space /Ot favor code speed
/Ox maximum optimizations
/favor:<blend|AMD64|INTEL64|ATOM> select processor to optimize for, one of:
/O1 minimize space
/O2 maximize speed
/Ob<n> inline expansion (default n=0)
/Og enable global optimization
/Oi[-] enable intrinsic functions
/Os favor code space /Ot favor code speed
/Ox maximum optimizations
/favor:<blend|AMD64|INTEL64|ATOM> select processor to optimize for, one of:
blend - a combination of optimizations for several different x64 processors
AMD64 - 64-bit AMD processors
INTEL64 - Intel(R)64 architecture processors
ATOM - Intel(R) Atom(TM) processors
AMD64 - 64-bit AMD processors
INTEL64 - Intel(R)64 architecture processors
ATOM - Intel(R) Atom(TM) processors
-CODE GENERATION-
/Gw[-] separate global variables for linker
/GF enable read-only string pooling
/Gm[-] enable minimal rebuild
/Gy[-] separate functions for linker
/GS[-] enable security checks
/GR[-] enable C++ RTTI
/GX[-] enable C++ EH (same as /EHsc)
/guard:cf[-] enable CFG (control flow guard)
/EHs enable C++ EH (no SEH exceptions)
/EHa enable C++ EH (w/ SEH exceptions)
/EHc extern "C" defaults to nothrow
/EHr always generate noexcept runtime termination checks
/fp:<except[-]|fast|precise|strict> choose floating-point model:
/GF enable read-only string pooling
/Gm[-] enable minimal rebuild
/Gy[-] separate functions for linker
/GS[-] enable security checks
/GR[-] enable C++ RTTI
/GX[-] enable C++ EH (same as /EHsc)
/guard:cf[-] enable CFG (control flow guard)
/EHs enable C++ EH (no SEH exceptions)
/EHa enable C++ EH (w/ SEH exceptions)
/EHc extern "C" defaults to nothrow
/EHr always generate noexcept runtime termination checks
/fp:<except[-]|fast|precise|strict> choose floating-point model:
except[-] - consider floating-point exceptions when generating code
fast - "fast" floating-point model; results are less predictable
precise - "precise" floating-point model; results are predictable
strict - "strict" floating-point model (implies /fp:except)
fast - "fast" floating-point model; results are less predictable
precise - "precise" floating-point model; results are predictable
strict - "strict" floating-point model (implies /fp:except)
/Qfast_transcendentals generate inline FP intrinsics even with /fp:except
/Qpar[-] enable parallel code generation
/Qpar-report:1 auto-parallelizer diagnostic; indicate parallelized loops
/Qpar-report:2 auto-parallelizer diagnostic; indicate loops not parallelized
/Qvec-report:1 auto-vectorizer diagnostic; indicate vectorized loops
/Qvec-report:2 auto-vectorizer diagnostic; indicate loops not vectorized
/GL[-] enable link-time code generation
/volatile:<iso|ms> choose volatile model:
/Qpar[-] enable parallel code generation
/Qpar-report:1 auto-parallelizer diagnostic; indicate parallelized loops
/Qpar-report:2 auto-parallelizer diagnostic; indicate loops not parallelized
/Qvec-report:1 auto-vectorizer diagnostic; indicate vectorized loops
/Qvec-report:2 auto-vectorizer diagnostic; indicate loops not vectorized
/GL[-] enable link-time code generation
/volatile:<iso|ms> choose volatile model:
iso - Acquire/release semantics not guaranteed on volatile accesses
ms - Acquire/release semantics guaranteed on volatile accesses
ms - Acquire/release semantics guaranteed on volatile accesses
/GA optimize for Windows Application
/Ge force stack checking for all funcs
/Gs[num] control stack checking calls
/Gh enable _penter function call
/GH enable _pexit function call
/GT generate fiber-safe TLS accesses
/RTC1 Enable fast checks (/RTCsu)
/RTCc Convert to smaller type checks
/RTCs Stack Frame runtime checking
/RTCu Uninitialized local usage checks
/clr[:option] compile for common language runtime, where option is:
/Ge force stack checking for all funcs
/Gs[num] control stack checking calls
/Gh enable _penter function call
/GH enable _pexit function call
/GT generate fiber-safe TLS accesses
/RTC1 Enable fast checks (/RTCsu)
/RTCc Convert to smaller type checks
/RTCs Stack Frame runtime checking
/RTCu Uninitialized local usage checks
/clr[:option] compile for common language runtime, where option is:
pure - produce IL-only output file (no native executable code)
safe - produce IL-only verifiable output file
initialAppDomain - enable initial AppDomain behavior of Visual C++ 2002
noAssembly - do not produce an assembly
nostdlib - ignore the default \clr directory
safe - produce IL-only verifiable output file
initialAppDomain - enable initial AppDomain behavior of Visual C++ 2002
noAssembly - do not produce an assembly
nostdlib - ignore the default \clr directory
/homeparams Force parameters passed in registers to be written to the stack
/GZ Enable stack checks (/RTCs)
/arch:AVX enable use of instructions available with AVX-enabled CPUs
/arch:AVX2 enable use of instructions available with AVX2-enabled CPUs
/Gv __vectorcall calling convention
/GZ Enable stack checks (/RTCs)
/arch:AVX enable use of instructions available with AVX-enabled CPUs
/arch:AVX2 enable use of instructions available with AVX2-enabled CPUs
/Gv __vectorcall calling convention
-OUTPUT FILES-
/Fa[file] name assembly listing file
/FA[scu] configure assembly listing
/Fd[file] name .PDB file
/Fe<file> name executable file
/Fm[file] name map file
/Fo<file> name object file
/Fp<file> name precompiled header file
/Fr[file] name source browser file
/FR[file] name extended .SBR file
/Fi[file] name preprocessed file
/Fd: <file> name .PDB file
/Fe: <file> name executable file
/Fm: <file> name map file
/Fo: <file> name object file
/Fp: <file> name .PCH file
/FR: <file> name extended .SBR file
/Fi: <file> name preprocessed file
/doc[file] process XML documentation comments and optionally name the .xdc file
/FA[scu] configure assembly listing
/Fd[file] name .PDB file
/Fe<file> name executable file
/Fm[file] name map file
/Fo<file> name object file
/Fp<file> name precompiled header file
/Fr[file] name source browser file
/FR[file] name extended .SBR file
/Fi[file] name preprocessed file
/Fd: <file> name .PDB file
/Fe: <file> name executable file
/Fm: <file> name map file
/Fo: <file> name object file
/Fp: <file> name .PCH file
/FR: <file> name extended .SBR file
/Fi: <file> name preprocessed file
/doc[file] process XML documentation comments and optionally name the .xdc file
-PREPROCESSOR-
/AI<dir> add to assembly search path
/FU<file> forced using assembly/module
/C don't strip comments
/D<name>{=|#}<text> define macro
/E preprocess to stdout
/EP preprocess to stdout, no #line
/P preprocess to file
/Fx merge injected code to file
/FI<file> name forced include file
/U<name> remove predefined macro
/u remove all predefined macros
/I<dir> add to include search path
/X ignore "standard places"
/FU<file> forced using assembly/module
/C don't strip comments
/D<name>{=|#}<text> define macro
/E preprocess to stdout
/EP preprocess to stdout, no #line
/P preprocess to file
/Fx merge injected code to file
/FI<file> name forced include file
/U<name> remove predefined macro
/u remove all predefined macros
/I<dir> add to include search path
/X ignore "standard places"
-LANGUAGE-
/Zi enable debugging information
/Z7 enable old-style debug info
/Zp[n] pack structs on n-byte boundary
/Za disable extensions
/Ze enable extensions (default)
/Zl omit default library name in .OBJ
/Zs syntax check only
/vd{0|1|2} disable/enable vtordisp
/vm<x> type of pointers to members
/Zc:arg1[,arg2] C++ language conformance, where arguments can be:
/Z7 enable old-style debug info
/Zp[n] pack structs on n-byte boundary
/Za disable extensions
/Ze enable extensions (default)
/Zl omit default library name in .OBJ
/Zs syntax check only
/vd{0|1|2} disable/enable vtordisp
/vm<x> type of pointers to members
/Zc:arg1[,arg2] C++ language conformance, where arguments can be:
forScope[-] enforce Standard C++ for scoping rules
wchar_t[-] wchar_t is the native type, not a typedef
auto[-] enforce the new Standard C++ meaning for auto
trigraphs[-] enable trigraphs (off by default)
rvalueCast[-] enforce Standard C++ explicit type conversion rules
strictStrings[-] disable string-literal to [char|wchar_t]*conversion (off by default)
implicitNoexcept[-] enable implicit noexcept on required functions
threadSafeInit[-] enable thread-safe local static initialization
inline[-] remove unreferenced function or data if it is COMDAT or has internal linkage only (off by default)
sizedDealloc[-] enable C++14 global sized deallocation functions (on by default)
throwingNew[-] assume operator new throws on failure (off by default)
referenceBinding[-] a temporary will not bind to an non-const lvalue reference (off by default)
wchar_t[-] wchar_t is the native type, not a typedef
auto[-] enforce the new Standard C++ meaning for auto
trigraphs[-] enable trigraphs (off by default)
rvalueCast[-] enforce Standard C++ explicit type conversion rules
strictStrings[-] disable string-literal to [char|wchar_t]*conversion (off by default)
implicitNoexcept[-] enable implicit noexcept on required functions
threadSafeInit[-] enable thread-safe local static initialization
inline[-] remove unreferenced function or data if it is COMDAT or has internal linkage only (off by default)
sizedDealloc[-] enable C++14 global sized deallocation functions (on by default)
throwingNew[-] assume operator new throws on failure (off by default)
referenceBinding[-] a temporary will not bind to an non-const lvalue reference (off by default)
/ZH:SHA_256 use SHA256 for file checksum in debug info (experimental)
/Zo[-] generate richer debugging information for optimized code (on by default)
/ZW enable WinRT language extensions
/constexpr:depth<N> use <N> as the recursion depth limit for constexpr (default: 512)
/constexpr:backtrace<N> show <N> constexpr evaluations in diagnostics (default: 10)
/constexpr:steps<N> terminate constexpr evaluation after <N> steps (default: 100000)
/ZI enable Edit and Continue debug info
/openmp enable OpenMP 2.0 language extensions
/Zo[-] generate richer debugging information for optimized code (on by default)
/ZW enable WinRT language extensions
/constexpr:depth<N> use <N> as the recursion depth limit for constexpr (default: 512)
/constexpr:backtrace<N> show <N> constexpr evaluations in diagnostics (default: 10)
/constexpr:steps<N> terminate constexpr evaluation after <N> steps (default: 100000)
/ZI enable Edit and Continue debug info
/openmp enable OpenMP 2.0 language extensions
-MISCELLANEOUS-
@<file> options response file
/?, /help print this help message
/bigobj generate extended object format
/c compile only, no link
/errorReport:option Report internal compiler errors to Microsoft:
/?, /help print this help message
/bigobj generate extended object format
/c compile only, no link
/errorReport:option Report internal compiler errors to Microsoft:
none - do not send report
prompt - prompt to immediately send report
queue - at next admin logon, prompt to send report (default)
send - send report automatically
prompt - prompt to immediately send report
queue - at next admin logon, prompt to send report (default)
send - send report automatically
/FC use full pathnames in diagnostics
/H<num> max external name length
/J default char type is unsigned
/MP[n] use up to 'n' processes for compilation
/nologo suppress copyright message
/sdl enable additional security features and warnings
/showIncludes show include file names
/Tc<source file> compile file as .c
/Tp<source file> compile file as .cpp
/TC compile all files as .c
/TP compile all files as .cpp
/V<string> set version string
/w disable all warnings
/wd<n> disable warning n
/we<n> treat warning n as an error
/wo<n> issue warning n once
/w<l><n> set warning level 1-4 for n
/W<n> set warning level (default n=1)
/Wall enable all warnings
/WL enable one line diagnostics
/WX treat warnings as errors
/Yc[file] create .PCH file
/Yd put debug info in every .OBJ
/Yl[sym] inject .PCH ref for debug lib
/Yu[file] use .PCH file
/Y- disable all PCH options
/Zm<n> max memory alloc (% of default)
/FS force to use MSPDBSRV.EXE
/await enable resumable functions extension
/Wv:xx[.yy[.zzzzz]] disable warnings introduced after version xx.yy.zzzzz
/source-charset:<iana-name>|.nnnn set source character set
/execution-charset:<iana-name>|.nnnn set execution character set
/utf-8 set source and execution character set to UTF-8
/validate-charset[-] validate UTF-8 files for only legal characters
/H<num> max external name length
/J default char type is unsigned
/MP[n] use up to 'n' processes for compilation
/nologo suppress copyright message
/sdl enable additional security features and warnings
/showIncludes show include file names
/Tc<source file> compile file as .c
/Tp<source file> compile file as .cpp
/TC compile all files as .c
/TP compile all files as .cpp
/V<string> set version string
/w disable all warnings
/wd<n> disable warning n
/we<n> treat warning n as an error
/wo<n> issue warning n once
/w<l><n> set warning level 1-4 for n
/W<n> set warning level (default n=1)
/Wall enable all warnings
/WL enable one line diagnostics
/WX treat warnings as errors
/Yc[file] create .PCH file
/Yd put debug info in every .OBJ
/Yl[sym] inject .PCH ref for debug lib
/Yu[file] use .PCH file
/Y- disable all PCH options
/Zm<n> max memory alloc (% of default)
/FS force to use MSPDBSRV.EXE
/await enable resumable functions extension
/Wv:xx[.yy[.zzzzz]] disable warnings introduced after version xx.yy.zzzzz
/source-charset:<iana-name>|.nnnn set source character set
/execution-charset:<iana-name>|.nnnn set execution character set
/utf-8 set source and execution character set to UTF-8
/validate-charset[-] validate UTF-8 files for only legal characters
-LINKING-
/LD Create .DLL
/LDd Create .DLL debug library
/LN Create a .netmodule
/F<num> set stack size
/link [linker options and libraries]
/MD link with MSVCRT.LIB
/MT link with LIBCMT.LIB
/MDd link with MSVCRTD.LIB debug lib
/MTd link with LIBCMTD.LIB debug lib
/LDd Create .DLL debug library
/LN Create a .netmodule
/F<num> set stack size
/link [linker options and libraries]
/MD link with MSVCRT.LIB
/MT link with LIBCMT.LIB
/MDd link with MSVCRTD.LIB debug lib
/MTd link with LIBCMTD.LIB debug lib
-CODE ANALYSIS-
/analyze[-] Enable native analysis
/analyze:quiet[-] No warning to console
/analyze:log<name> Warnings to file /analyze:autolog Log to *.pftlog
/analyze:autolog:ext<ext> Log to *.<ext>/analyze:autolog- No log file
/analyze:WX- Warnings not fatal /analyze:stacksize<num> Max stack frame
/analyze:max_paths<num> Max paths /analyze:only Analyze, no code gen
/analyze:quiet[-] No warning to console
/analyze:log<name> Warnings to file /analyze:autolog Log to *.pftlog
/analyze:autolog:ext<ext> Log to *.<ext>/analyze:autolog- No log file
/analyze:WX- Warnings not fatal /analyze:stacksize<num> Max stack frame
/analyze:max_paths<num> Max paths /analyze:only Analyze, no code gen
Comments
Post a Comment