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.

/analyze

Enable code analysis.

/arch

Use SSE or SSE2 instructions in code generation (x86 only).

/bigobj

Increases the number of addressable sections in an .obj file.

/C

Preserves comments during preprocessing.

/c

Compiles without linking.

/clr

Produces an output file to run on the common language runtime.

/D

Defines constants and macros.

/doc

Process documentation comments to an XML file.

/E

Copies preprocessor output to standard output.

/EH

Specifies the model of exception handling.

/EP

Copies preprocessor output to standard output.

/errorReport

Allows you to provide internal compiler error (ICE) information directly to the Visual C++ team.

/F

Sets stack size.

/favor

Produces code that is optimized for a specific x64 architecture or for the specifics of micro-architectures in both the AMD64 and Extended Memory 64 Technology (EM64T) architectures.

/FA

Creates a listing file.

/Fa

Sets listing file name.

/FC

Display full path of source code files passed to cl.exe in diagnostic text.

/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

Specify floating-point behavior.

/Fp

Specifies a precompiled header file name.

/FR

/Fr

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.

/G1

Optimize for Itanium processor. Only available in the IPF cross compiler or IPF native compiler.

/G2

Optimize for Itanium2 processor (default between /G1 and /G2). Only available in the IPF cross compiler or IPF native compiler.

/GA

Optimizes code for Windows application.

/Gd

Uses the __cdecl calling convention (x86 only).

/Ge

Activates stack probes.

/GF

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 (x86 only).

/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./RTC (Run-Time Error Checks)

/Gz

Uses the __stdcall calling convention (x86 only).

/H

Restricts the length of external (public) names.

/HELP

Lists the compiler options.

/homeparams

Forces parameters passed in registers to be written to their locations on the stack upon function entry. This compiler option is only for the x64 compilers (native and cross compile).

/hotpatch

Creates a hotpatchable image.

/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.

/LN

Creates an MSIL module.

/MD

Creates a multithreaded DLL using MSVCRT.lib.

/MDd

Creates a debug multithreaded DLL using MSVCRTD.lib.

/MP

Compiles multiple source files by using multiple processes.

/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.

/Ob

Controls inline expansion.

/Od

Disables optimization.

/Og

Uses global optimizations.

/Oi

Generates intrinsic functions.

/openmp

Enables #pragma omp in source code.

/Os

Favors small code.

/Ot

Favors fast code.

/Ox

Uses maximum optimization (/Ob2gity /Gs).

/Oy

Omits frame pointer (x86 only).

/Qfast_transcendentals

Generates fast transcendentals.

/QIfist

Suppresses _ftol when a conversion from a floating-point type to an integral type is required (x86 only).

/Qimprecise_fwaits

Removes fwait commands inside try blocks.

/QIPF_B

Does not generate sequences of instructions that give unexpected results, according to the errata for the B CPU stepping. (IPF only).

/QIPF_C

Does not generate sequences of instructions that give unexpected results, according to the errata for the C CPU stepping. (IPF only).

/QIPF_fr32

Do not use upper 96 floating-point registers. (IPF only).

/QIPF_noPIC

Generates an image with position dependent code (IPF only).

/QIPF_restrict_plabels

Enhances performance for programs that do not create functions at runtime. (IPF only).

/P

Writes preprocessor output to a file.

/RTC

Enables run-time error checking.

/showIncludes

Displays a list of include files during compilation.

/Tc

/TC

Specifies a C source file.

/Tp

/TP

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.

/Z7

Generates C 7.0–compatible debugging information.

/Za

Disables language extensions.

/Zc

Specifies standard behavior under /Ze./Za, /Ze (Disable Language Extensions)

/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 (x86 only).

/Zm

Specifies the precompiled header memory allocation limit.

/Zp

Packs structure members.

/Zs

Checks syntax only.

/Zx

Generates debuggable optimized code. Only available in the IPF cross compiler or IPF native compiler.

See Also

Reference

Compiler Options

Setting Compiler Options

Other Resources

C/C++ Building Reference