Build Flags & Short Explanations

Keep forgetting what the build flags do, so made a list:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/Od         Disables optimization.
/MTd        Creates a debug multithreaded executable file using LIBCMTD.lib.
//MT        Creates a multithreaded executable file using LIBCMT.lib.
/nologo     Suppresses display of sign-on banner.
/fp         Specify floating-point behavior. (fast = Creates the fastest code in most cases by relaxing the rules for optimizing floating-point operations ..)
/Gm         Enables minimal rebuild.
/GR         Enables run-time type information (RTTI).
/EHa        Exception Handling Model (a = The exception-handling model that catches both asynchronous (structured) and synchronous (C++) exceptions.)
/Zo         Generate enhanced debugging information for optimized code in non-debug builds.
/Oi         Generates intrinsic functions.
/WX         Treats all compiler warnings as errors.
/W4         Level 4 displays all level 3 warnings and informational warnings
/wd*        Disables the compiler warning that is specified in *
/FC         Display full path of source code files passed to cl.exe in diagnostic text.
/Z7         Generates C 7.0–compatible debugging information.
/OPT:ref    eliminates functions and data that are never referenced
-D_CRT_SECURE_NO_WARNINGS define _CRT_SECURE_NO_WARNINGS to disable security warnings
-subsystem:windows  Application does not require a console | 5.01 (x86) 5.02 (x64) |  6.00 (x86, x64)
-subsystem:CONSOLE  Win32 character-mode application. The operating system provides a console for console application
/O1         Creates small code.
/O2         Creates fast code.
/LD         Creates a dynamic-link library.
/LDd        Creates a debug dynamic-link library.
/Fd*        * specifies name of pdb file (Program Database File Name)
-PDB:*      /Fd* (same as ?)
-Fm*        Creates a mapfile.
/c         Compiles without linking.

/link       Passes the specified option to LINK.
/incremental:no    disable incremental link
/EXPORT     Exports a function.


Sources:
Compiler Options
Linker Options

Edited by actbinary on