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