Compiler Options Listed Alphabetically
Collapse the table of content
Expand the table of content
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

Compiler Options Listed Alphabetically

The following is a comprehensive alphabetical list of compiler options. For a categorical list, see the Compiler Options Listed by Category.

Option Purpose
@ Specifies a response file
/? Lists the compiler options
/AI Specifies a directory to search to resolve file references passed to the #using directive
/arch Use SSE or SSE2 instructions in code generation
/C Preserves comments during preprocessing
/c Compiles without linking
/clr Enables Managed Extensions for C++ and produces an output file to run on the common language runtime
/D Defines constants and macros
/E Copies preprocessor output to standard output
/EH Specifies the model of exception handling
/EP Copies preprocessor output to standard output
/F Sets stack size
/FA Creates a listing file
/Fa Sets listing file name
/Fd Renames program database file
/Fe Renames the executable file
/FI Preprocesses the specified include file
/Fm Creates a mapfile
/Fo Creates an object file
/Fp Specifies a precompiled header file name
Generates browser files
/FU Forces the use of a file name as if it had been passed to the #using directive
/Fx Merges injected code with source file
/G3 Optimizes code to favor the 386 processor. Phased out in Visual C++ 5.0, the compiler will ignore this option
/G4 Optimizes code to favor the 486 processor. Phased out in Visual C++ 5.0, the compiler will ignore this option
/G5 Optimizes code to favor the Pentium processor
/G6 Optimizes code to favor the Pentium Pro, Pentium II, and Pentium III processors
/G7 Optimizes code to favor the Pentium 4 or Athlon.
/GA Optimizes code for Windows application
/GB Equivalent to /G6; sets the value of _M_IX86 to 600
/Gd Uses the __cdecl calling convention
/Ge Activates stack probes
Enables string pooling
/GH Calls hook function _pexit
/Gh Calls hook function _penter
/GL Enables whole program optimization
/Gm Enables minimal rebuild
/GR Enables run-time type information (RTTI)
/Gr Uses the __fastcall calling convention
/GS Buffers security check
/Gs Controls stack probes
/GT Supports fiber safety for data allocated using static thread-local storage
/GX Enables synchronous exception handling
/Gy Enables function-level linking
/GZ Same as /RTC1
/Gz Uses the __stdcall calling convention
/H Restricts the length of external (public) names
/HELP Lists the compiler options
/I Searches a directory for include files
/J Changes the default char type
/LD Creates a dynamic-link library
/LDd Creates a debug dynamic-link library
/link Passes the specified option to LINK
/MD Creates a multithreaded DLL using MSVCRT.lib
/MDd Creates a debug multithreaded DLL using MSVCRTD.lib
/ML Creates a single-threaded executable file using LIBC.lib
/MLd Creates a debug single-threaded executable file using LIBCD.lib
/MT Creates a multithreaded executable file using LIBCMT.lib
/MTd Creates a debug multithreaded executable file using LIBCMTD.lib
/nologo Suppresses display of sign-on banner
/O1 Creates small code
/O2 Creates fast code
/Oa Assumes no aliasing
/Ob Controls inline expansion
/Od Disables optimization
/Og Uses global optimizations
/Oi Generates intrinsic functions
/Op Improves floating-point consistency
/Os Favors small code
/Ot Favors fast code
/Ow Assumes aliasing across function calls
/Ox Uses maximum optimization (/Ob2gity /Gs)
/Oy Omits frame pointer
/QI0f Performs Pentium 0x0f erratum fix
/QIfdiv Performs Pentium FDIV erratum fix
/QIfist Suppresses _ftol when a conversion from a floating-point type to an integral type is required
/P Writes preprocessor output to a file
/RTC Enables run-time error checking
/showIncludes Displays a list of include files during compilation
Specifies a C source file
Specifies a C++ source file
/U Removes a predefined macro
/u Removes all predefined macros
/V Sets the version string
/vd Suppresses or enables hidden vtordisp class members
/vmb Uses best base for pointers to members
/vmg Uses full generality for pointers to members
/vmm Declares multiple inheritance
/vms Declares single inheritance
/vmv Declares virtual inheritance
/W Sets warning level
/w Disables all warnings
/Wall Enables all warnings, including warnings that are disabled by default
/WL Enables one-line diagnostics for error and warning messages when compiling C++ source code from the command line
/Wp64 Detects 64-bit portability problems
/X Ignores the standard include directory
/Y- Ignores all other precompiled-header compiler options in the current build
/Yc Creates a precompiled header file
/Yd Places complete debugging information in all object files
/Yl Injects a PCH reference when creating a debug library
/Yu Uses a precompiled header file during build
/YX Automates precompiled header
/Z7 Generates C 7.0–compatible debugging information
/Za Disables language extensions
/Zc Specifies standard behavior under /Ze
/Zd Generates line numbers
/Ze Enables language extensions
/Zg Generates function prototypes
/ZI Includes debug information in a program database compatible with Edit and Continue
/Zi Generates complete debugging information
/Zl Removes default library name from .obj file
/Zm Specifies the precompiled header memory allocation limit
/Zp Packs structure members
/Zs Checks syntax only

See Also

C/C++ Building Reference | Compiler Options | Setting Compiler Options

© 2016 Microsoft