微软C/C++编译器选项参考

  • 优化
  • /O1 最小化空间 minimize space
  • /Op[-] 改善浮点数一致性 improve floating-pt consistency
  • /O2 最大化速度 maximize speed
  • /Os 优选代码空间 favor code space
  • /Oa 假设没有别名 assume no aliasing
  • /Ot 优选代码速度 favor code speed
  • /Ob 内联展开(默认 n=0) inline expansion (default n=0)
  • /Ow 假设交叉函数别名 assume cross-function aliasing
  • /Od 禁用优化(默认值) disable optimizations (default)
  • /Ox 最大化选项。(/Ogityb2 /Gs) maximum opts. (/Ogityb1 /Gs)
  • /Og 启用全局优化 enable global optimization
  • /Oy[-] 启用框架指针省略 enable frame pointer omission
  • /Oi 启用内建函数 enable intrinsic functions
  • 代码生成
  • /G3 为 80386 进行优化 optimize for 80386
  • /G4 为 80486 进行优化 optimize for 80486
  • /GR[-] 启用 C++ RTTI enable C++ RTTI
  • /G5 为 Pentium 进行优化 optimize for Pentium
  • /G6 为 Pentium Pro 进行优化 optimize for Pentium Pro
  • /GX[-] 启用 C++ 异常处理(与 /EHsc 相同) enable C++ EH (same as /EHsc)
  • /EHs 启用同步 C++ 异常处理 enable synchronous C++ EH
  • /GD 为 Windows DLL 进行优化 optimize for Windows DLL
  • /GB 为混合模型进行优化(默认) optimize for blended model (default)
  • /EHa 启用异步 C++ 异常处理 enable asynchronous C++ EH
  • /Gd __cdecl 调用约定 __cdecl calling convention
  • /EHc extern "C"默认为 nothrow extern “C” defaults to nothrow
  • /Gr __fastcall 调用约定 __fastcall calling convention
  • /Gi[-] 启用增量编译 enable incremental compilation
  • /Gz __stdcall 调用约定 __stdcall calling convention
  • /Gm[-] 启用最小重新生成 enable minimal rebuild
  • /GA 为 Windows 应用程序进行优化 optimize for Windows Application
  • /Gf 启用字符串池 enable string pooling
  • /QIfdiv[-] 启用 Pentium FDIV 修复 enable Pentium FDIV fix
  • /GF 启用只读字符串池 enable read-only string pooling
  • /QI0f[-] 启用 Pentium 0x0f 修复 enable Pentium 0x0f fix
  • /Gy 分隔链接器函数 separate functions for linker
  • /GZ 启用运行时调试检查 enable runtime debug checks
  • /Gh 启用钩子函数调用 enable hook function call
  • /Ge 对所有函数强制堆栈检查 force stack checking for all funcs
  • /Gs[num] 禁用堆栈检查调用 disable stack checking calls
  • 输出文件
  • /Fa[file] 命名程序集列表文件 name assembly listing file
  • /Fo 命名对象文件 name object file
  • /FA[sc] 配置程序集列表 configure assembly listing
  • /Fp 命名预编译头文件 name precompiled header file
  • /Fd[file] 命名 .PDB 文件 name .PDB file
  • /Fr[file] 命名源浏览器文件 name source browser file
  • /Fe 命名可执行文件 name executable file
  • /FR[file] 命名扩展 .SBR 文件 name extended .SBR file
  • /Fm[file] 命名映射文件 name map file
  • 预处理器
  • /FI 命名强制包含文件 name forced include file
  • /C 不吸取注释 don’t strip comments
  • /U 移除预定义宏 remove predefined macro
  • /D{=|#} 定义宏 define macro
  • /u 移除所有预定义宏 remove all predefined macros
  • /E 将预处理定向到标准输出 preprocess to stdout
  • /I 添加到包含文件的搜索路径 add to include search path
  • /EP 将预处理定向到标准输出,不要带行号 preprocess to stdout, no #line
  • /X 忽略”标准位置” ignore “standard places”
  • /P 预处理到文件 preprocess to file
  • 语言
  • /Zi 启用调试信息 enable debugging information
  • /Zl 忽略 .OBJ 中的默认库名 omit default library name in .OBJ
  • /ZI 启用调试信息的”编辑并继续”功能 enable Edit and Continue debug info
  • /Zg 生成函数原型 generate function prototypes
  • /Z7 启用旧式调试信息 enable old-style debug info
  • /Zs 只进行语法检查 syntax check only
  • /Zd 仅要行号调试信息 line number debugging info only
  • /vd{0|1} 禁用/启用 vtordisp disable/enable vtordisp
  • /Zp[n] 在 n 字节边界上包装结构 pack structs on n-byte boundary
  • /vm 指向成员的指针类型 type of pointers to members
  • /Za 禁用扩展(暗指 /Op) disable extensions (implies /Op)
  • /noBool 禁用bool关键字 disable “bool” keyword
  • /Ze 启用扩展(默认) enable extensions (default)
  • 杂项
  • /?, /help 打印此帮助消息 print this help message
  • /c 只编译,不链接 compile only, no link
  • /W 设置警告等级(默认 n=1) set warning level (default n=1)
  • /H 最大化外部名称长度 max external name length
  • /J 默认 char 类型是 unsigned default char type is unsigned
  • /nologo 取消显示版权消息 suppress copyright message
  • /WX 将警告视为错误 treat warnings as errors
  • /Tc 将文件编译为 .c compile file as .c
  • /Yc[file] 创建 .PCH 文件 create .PCH file
  • /Tp 将文件编译为 .cpp compile file as .cpp
  • /Yd 将调试信息放在每个 .OBJ 中 put debug info in every .OBJ
  • /TC 将所有文件编译为 .c compile all files as .c
  • /TP 将所有文件编译为 .cpp compile all files as .cpp
  • /Yu[file] 使用 .PCH 文件 use .PCH file
  • /V 设置版本字符串 set version string
  • /YX[file] 自动的 .PCH 文件 automatic .PCH
  • /w 禁用所有警告 disable all warnings
  • /Zm 最大内存分配(默认为 %) max memory alloc (% of default)
  • 链接
  • /MD 与 MSVCRT.LIB 链接 link with MSVCRT.LIB
  • /MDd 与 MSVCRTD.LIB 调试库链接 link with MSVCRTD.LIB debug lib
  • /ML 与 LIBC.LIB 链接 link with LIBC.LIB
  • /MLd 与 LIBCD.LIB 调试库链接 link with LIBCD.LIB debug lib
  • /MT 与 LIBCMT.LIB 链接 link with LIBCMT.LIB
  • /MTd 与 LIBCMTD.LIB 调试库链接 link with LIBCMTD.LIB debug lib
  • /LD 创建 .DLL Create .DLL
  • /F 设置堆栈大小 set stack size
  • /LDd 创建 .DLL 调试库 Create .DLL debug libary
  • /link 链接器选项和库 linker options and libraries