visual C/C++ 6.0编译选项
-优化-
/O1 最小空间 /Op[-] 改善浮点指针一致性
/O2 最大速度 /Os 支持代码空间
/Oa 假设没有别名 /Ot 支持代码速度
/Ob<n> 内联拓展 (默认 n=0) /Ow 假设交叉函数别名
/Od 禁止优化 (默认) /Ox 最大操作. (/Ogityb1 /Gs)
/Og 允许全局优化 /Oy[-] 允许帧指针省略
/Oi 允许内在函数
/O2 最大速度 /Os 支持代码空间
/Oa 假设没有别名 /Ot 支持代码速度
/Ob<n> 内联拓展 (默认 n=0) /Ow 假设交叉函数别名
/Od 禁止优化 (默认) /Ox 最大操作. (/Ogityb1 /Gs)
/Og 允许全局优化 /Oy[-] 允许帧指针省略
/Oi 允许内在函数
-代码生成-
/G3 为80386优化 /Gy 为链接器分离函数
/G4 为80486 /Ge 为所有函数强制栈检查
/G5 为Pentium优化 /Gs[num] 禁止栈检查调用
/G6 为Pentium Pro优化 /Gh 允许钩子函数调用
/GB 为blended model优化 (默认) /GR[-] 允许C++ RTTI
/Gd __cdecl调用约定 /GX[-] 允许C++ EH (same as /EHsc)
/Gr __fastcall调用约定 /Gi[-] 允许增量收集
/Gz __stdcall调用约定 /Gm[-] 允许最小化重新创建
/GA 为Windows应用程序优化 /EHs 允许同步C++ EH
/GD 为Windows DLL优化 /EHa 允许同步C++ EH
/Gf 允许字符串公用 /EHc extern "C" 默认不抛出
/GF 允许只读字符串公用 /QIfdiv[-] 允许Pentium FDIV 修复
/GZ 允许运行时调试检查 /QI0f[-] 允许Pentium 0x0f 修复
/G4 为80486 /Ge 为所有函数强制栈检查
/G5 为Pentium优化 /Gs[num] 禁止栈检查调用
/G6 为Pentium Pro优化 /Gh 允许钩子函数调用
/GB 为blended model优化 (默认) /GR[-] 允许C++ RTTI
/Gd __cdecl调用约定 /GX[-] 允许C++ EH (same as /EHsc)
/Gr __fastcall调用约定 /Gi[-] 允许增量收集
/Gz __stdcall调用约定 /Gm[-] 允许最小化重新创建
/GA 为Windows应用程序优化 /EHs 允许同步C++ EH
/GD 为Windows DLL优化 /EHa 允许同步C++ EH
/Gf 允许字符串公用 /EHc extern "C" 默认不抛出
/GF 允许只读字符串公用 /QIfdiv[-] 允许Pentium FDIV 修复
/GZ 允许运行时调试检查 /QI0f[-] 允许Pentium 0x0f 修复
-输出文件-
/Fa[file] 汇编列表文件 /Fo<file> name 对象文件
/FA[sc] 配置汇编列表 /Fp<file> name 预编译头文件
/Fd[file] name .PDB文件 /Fr[file] name 源浏览器文件
/Fe<file> name 可执行文件 /FR[file] name 拓展.SBR文件
/Fm[file] name 映射文件
/FA[sc] 配置汇编列表 /Fp<file> name 预编译头文件
/Fd[file] name .PDB文件 /Fr[file] name 源浏览器文件
/Fe<file> name 可执行文件 /FR[file] name 拓展.SBR文件
/Fm[file] name 映射文件
-预处理器-
/C 不要拆开注释 /FI<file> name 强制包含文件
/D<name>{=|#}<text> 定义宏 /U<name> 删除预定义宏
/E 预处理到stdout /u 删除所有预定义宏
/EP 预处理到stdout,没有#line /I<dir> 增加到Include搜索路径
/P 预处理到文件 /X 忽略"标准位置"
/D<name>{=|#}<text> 定义宏 /U<name> 删除预定义宏
/E 预处理到stdout /u 删除所有预定义宏
/EP 预处理到stdout,没有#line /I<dir> 增加到Include搜索路径
/P 预处理到文件 /X 忽略"标准位置"
-语言-
/Zi 允许调试信息 /Zl 在.OBJ中省略默认库名
/ZI 允许编辑和继续调试信息 /Zg 生成函数原型
/Z7 允许老式调试信息 /Zs 仅语法检查
/Zd 仅行号调试信息 /vd{0|1} 禁止/允许 vtordisp
/Zp[n] 在n字节界限上打包结构 /vm<x> 成员的指针类型
/Za 禁止拓展(蕴含 /Op) /noBool 禁止"bool" 关键字
/Ze 允许拓展(默认)
/ZI 允许编辑和继续调试信息 /Zg 生成函数原型
/Z7 允许老式调试信息 /Zs 仅语法检查
/Zd 仅行号调试信息 /vd{0|1} 禁止/允许 vtordisp
/Zp[n] 在n字节界限上打包结构 /vm<x> 成员的指针类型
/Za 禁止拓展(蕴含 /Op) /noBool 禁止"bool" 关键字
/Ze 允许拓展(默认)
-杂项-
/?, /help 打印帮助信息 /V<string> 设置版本字符串
/c 仅编译不链接 /w 禁止所有警告
/H<num> 最大的外部名字长 /W<n> 设置警告级别(默认n=1)
/J 默认的char类型是unsigned /WX 将警告作为错误对待
/nologo 禁止版权信息 /Yc[file] 创建.PCH文件
/Tc<source file> 将文件作为.c文件编译 /Yd 将调试信息放入每个.OBJ文件
/Tp<source file> 将文件作为.cpp文件编译 /Yu[file] 使用.PCH文件
/TC 将所有文件作为.c文件编译 /YX[file] 自动.PCH
/TP 将所有文件作为.cpp文件编译 /Zm<n> 最大内存分配(默认为%)
/c 仅编译不链接 /w 禁止所有警告
/H<num> 最大的外部名字长 /W<n> 设置警告级别(默认n=1)
/J 默认的char类型是unsigned /WX 将警告作为错误对待
/nologo 禁止版权信息 /Yc[file] 创建.PCH文件
/Tc<source file> 将文件作为.c文件编译 /Yd 将调试信息放入每个.OBJ文件
/Tp<source file> 将文件作为.cpp文件编译 /Yu[file] 使用.PCH文件
/TC 将所有文件作为.c文件编译 /YX[file] 自动.PCH
/TP 将所有文件作为.cpp文件编译 /Zm<n> 最大内存分配(默认为%)
-链接-
/MD 使用MSVCRT.LIB链接 /MDd 使用MSVCRTD.LIB调试库链接
/ML 使用LIBC.LIB链接 /MLd 使用LIBCD.LIB调试库链接
/MT 使用LIBCMT.LIB链接 /MTd 使用LIBCMTD.LIB调试库链接
/LD 创建.DLL /F<num> 设置栈大小
/LDd 创建.DLL 调试库 /link [链接器选项和库]
/ML 使用LIBC.LIB链接 /MLd 使用LIBCD.LIB调试库链接
/MT 使用LIBCMT.LIB链接 /MTd 使用LIBCMTD.LIB调试库链接
/LD 创建.DLL /F<num> 设置栈大小
/LDd 创建.DLL 调试库 /link [链接器选项和库]
转载于:https://blog.51cto.com/wenix/364874