Summary of Compiler Options (in alphabetical order)

Option Description
/? Display a list of compiler options with descriptions.
/B"options" Pass options to linker, in addition to default options.
/C[+|-] Perform compile without linking, instead of compiling and linking.
/Dname Define preprocessor macros.
/Fa[+|-][dir][name] Produce, name, and direct assembler listing file.
/Fc[+|-] Perform syntax check only, instead of a full compile.
/Fename Specify name of executable output file.
/Fi[+|-][dir][name] Produce, name, and direct a precompiled header file.
/Fl[+|-][dir][name] Produce, name, and direct listing file.
/Fm[+|-] Produce and name linker map file.
/Fn[+|-][dir][name] Produce, name, and direct assembler listing file with source and machine code as comments.
/Fo[+|-][dir][name] Control and name object file.
/Ft[+|-][dir] Control and direct files for template resolution.
/G[3|4|5] Specify the processor for which the code is optimized.
/Gd[+|-] Dynamically link to the runtime library, instead of linking statically.
/Ge[+|-] Build .exe or .dll file.
/Gf[+|-] Use fast floating-point execution.
/Gi[+|-] Use fast integer execution.
/Gk[+|-] Link with Version 2 C++ libraries.
/Gl[+|-] Remove unreferenced functions.
/Gm[+|-] Link with the multithread library, instead of the single-thread library.
/Gn[+|-] Hide default library information from linker.
/Gp Support parmdwords
/Gr[+|-] Generate code to run at ring 0.
/Gs[+|-] Remove stack probes.
/Gt[+|-] Support tiled memory.
/Gv[+|-] Support development of virtual device drivers.
/Gx[+|-] Remove C++ exception handling information.
/Gy[+|-] Decorate all external names with a leading underscore.
/Hnum Set maximum length of external names.
/Ipath[path] Specify include search paths, in addition to directory of source file and paths in INCLUDE.
/J[+|-] Treat unspecified char variables as signed char, instead of unsigned char.
/L[+|-] Produce a minimal listing file.
/La[+|-] Include a minimal layout in the listing file, showing referenced struct and union variables.
/Lb[+|-] Include a layout in the listing file, showing all struct and union variables.
/Le[+|-] Expand macros in the listing file.
/Lf[+|-] Set all listing options on.
/Li[+|-] Expand user include files in the listing file.
/Lj[+|-] Expand user and system include files in the listing file.
/Lpnum Set page length of listing file.
/Ls[+|-] Include the source code in the listing file.
/Lt"string" Set title string for the listing file.
/Lu"string" Set subtitle string in the listing file.
/Lx[+|-] Generate a minimal cross-reference table in the listing file.
/Ly[+|-] Generate a cross-reference table in the listing file.
/M[p|s|c|t] Set default calling convention.
/Nn End compilation when error count reaches n.
/Ndname Set names of default data, uninitialized data, and constant segments.
/Ntname Set names of default code or text segment.
/Nxname Set names of exception-handling segments.
/O[+|-|2|3] Optimize code.
/Oc[+|-] Optimize code for size.
/Oi[+|-]
/Oi[value]
Inline user functions.
/Om[+|-] Limit working set size.
/Op[+|-] Perform optimizations that involve the stack pointer.
/Oq[+|-] Control stackchaining.
/Os[+|-] Invoke the instruction scheduler.
/P[+|-] Run the preprocessor only, instead of a full compile.
/Pc[+|-] Preserve source code comments in preprocessor output.
/Pd[+|-] Redirect preprocessor output to stdout.
/Pe[+|-] Suppress #line directives in preprocessor output.
/Q[+|-] Suppress the compiler logo when invoking the compiler.
/qalias Specify which aliasing rules can be used during optimization.
/qarch Specify architecture on which executable will run.
/qautoimported Import all external references.
/qautothread Turn static, nonconstant data into thread-local data.
/qbitfields Specify default sign of bitfields.
/qdbgunref Use referenced and unreferenced symbols during debugging.
/qdigraph Permit digraph and keyword operators.
/qignerrno Optimize without reference to errno
/qignprag=[disjoint  |isolated|all] Ignore references to #pragma disjoint and #pragma isolated_call.
/qinitauto=hex_value Initialize automatic storage
/qisolated_call List functions that do not change data objects at time of function call.
/qlibansi Process ANSI C library names as system functions.
/qlonglong Process or disallow data type of LONG LONG INT.
/qmakedep Create dependency files to include in makefile.
/qro Use read-only storage for string literals.
/qrtti=rtoption Generate information for the typeid operator and the dynamic_cast operator.
/qsomvolattr Use volatile on attribute prototypes.
/qtune=option Specify the processor for which code is optimized.
/R[e|n] Generate code that can be used as a subsystem without a runtime environment.
/S[a|c|e|2] Set language level.
/Sd[+|-] Set the default file extension for source files to .c, instead of .obj.
/Sg[l][,r|*]
/Sg[-]
Set left and right margins for the input file, and ignore text outside these margins.
/Sh[+|-] Allow use of ddnames.
/Si[+|-] Use precompiled header files, if they exist and are current.
/Sm[+|-] Ignore obsolete keywords, instead of treating them like any other identifier.
/Sn[+|-] Allow use of DBCS.
/Sp[1|2|4|8|16] Specify alignment or packing of data items within structures and unions.
/Sq[l][,r|*] Ignore text in specified columns, instead of processing all the contents of the input file.
/Sr[+|-] Use old-style rules for type conversion, instead of new-style rules.
/Ss[+|-] Allow double slashes to indicate comments.
/Su[+|-|1|2|4] Control size of enum variables, instead of using the SAA rules.
/Sv[+|-] Allow use of memory files.
/Tcfilename Compile filename as a C source file, regardless of its extension.
/Td[c|p] Specify the default language (C or C++) for files, instead of compiling according to the file extension.
/Ti[+|-] Generate debugger information.
/Tm[+|-] Enable debug version of memory management functions.
/Tn[+|-] Generate partial debugger information.
/Tpfilename Compile the following file as a C++ source file, regardless of its extension.
/Tx[+|-] Provide a complete machine-state dump when an exception occurs, instead of providing only the exception message and address.
/U[name|*] Undefine macros.
/V"string" Include a version string in the object and executable files.
/W[0|1|2|3] Set severity level of messages the compiler produces and counts.
/Wgrp[+|-][grp] Generate or suppress messages in the grp group.
/Xc[+|-] Do not search paths specified using /I.
/Xi[+|-] Do not search paths specified in INCLUDE.


Summary of Compiler Options by Function