VC命令行编译参数简介(一)

2014-11-24 10:41:30 ? 作者: ? 浏览: 1

CL.exe 是控制 Microsoft C 和 C++ 编译器与链接器的 32 位工具。编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。


注意,所有编译器选项都区分大小写。


若要编译但不链接,请使用 /c。


使用 NMAKE 生成输出文件。


使用 BSCMAKE 支持类浏览。


以下是一个完整的编译器选项分类列表。


优化


选项 作用


/O1 创建小代码


/O2 创建快速代码


/Oa 假设没有别名


/Ob 控制内联展开


/Od 禁用优化


/Og 使用全局优化


/Oi 生成内部函数


/Op 改善浮点数一致性


/Os 代码大小优先


/Ot 代码速度优先


/Ow 假定在函数调用中使用别名


/Ox 使用最大优化 (/Ob1gity /Gs)


/Oy 省略框架指针


代码生成


选项 作用


/clr 启用 C++ 的托管扩展并产生在公共语言运行库上运行的输出文件


/EH 指定异常处理模型


/G3 优化代码以优选 386 处理器。在 Visual C++ 5.0 中已经停用,编译器将忽略此选项


/G4 优化代码以优选 486 处理器。在 Visual C++ 5.0 中已经停用,编译器将忽略此选项


/G5 优化代码以优选 Pentium


/GB 与 /G6 等效;将 _M_IX86 的值设置为 600


/Gd 使用 __cdecl 调用约定


/Ge 激活堆栈探测


/GF


/GF 启用字符串池


/GH 调用挂钩函数 _penter


/GH 调用挂钩函数 _pexit


/GL 启用全程序优化


/Gm 启用最小重新生成


/Gr 启用运行时类型信息 (RTTI)


/Gr 使用 __fastcall 调用约定


/GS 控制堆栈探测


/GT 支持使用静态线程本地存储区分配的数据的纤程安全


/GX 启用同步异常处理


/Gy 启用函数级链接


/GZ 使用 __stdcall 调用约定


/MD 使用 MSVCRT.lib 创建多线程 DLL


/MDd 使用 MSVCRTD.lib 创建调试多线程 DLL


/ML 使用 LIBC.lib 创建单线程可执行文件


/MLd 使用 LIBCD.lib 创建调试单线程可执行文件


/MT 使用 LIBCMT.lib 创建多线程可执行文件


/MTd 使用 LIBCMTD.lib 创建调试多线程可执行文件


输出文件


选项 作用


/FA


/FA 创建列表文件


设置列表文件名


/Fd 重命名程序数据库文件


/Fe 重命名可执行文件


/Fm 创建映射文件


/Fo 创建对象文件


/Fp 指定预编译头文件名


/FR


/FR 生成浏览器文件


/Fx 将插入的代码与源文件合并


调试


选项 作用


/GS 缓冲区安全检查


/GZ 与 /RTC1 相同


/RTC 启用运行时错误检查


/Wp64 检测 64 位可移植性问题


/Yd 将完整的调试信息放在所有对象文件中


/Yl 创建调试库时插入 PCH 引用


/Z7 生成与 C 7.0 兼容的调试信息


/Zd 生成行号


/Zi 生成完整的调试信息


预处理器


选项 作用


/AI 指定在解析传递到#using 指令的文件引用时搜索的目录


/c 在预处理期间保留注释


/D 定义常数和宏


/E 将预处理器输出复制到标准输出


/EP 将预处理器输出复制到标准输出


/Fl 预处理指定的包含文件


/FU 强制使用文件名,就像它已被传递到#using 指令一样


/I 在目录中搜索包含文件


/P 将预处理器输出写入文件


/U 移除预定义宏


/U 移除所有的预定义宏


/X 忽略标准包含目录


/ZI 将调试信息包含在与“编辑并继续”兼容的程序数据库


语言


选项 作用


/noBool 取消 C++ bool、true 和 false 关键字


/vd 取消或启用隐藏的 vtordisp 类成员


/vmb 对指向成员的指针使用最佳的基


/vmg 对指向成员的指针使用完全一般性


/vmm 声明多重继承


/vms 声明单一继承


/vmv 声明虚拟继承


/Za 禁用语言扩展


/Zc 在 /Ze 下指定标准行为


/Ze 启用语言扩展


/Zg 生成函数原型


/Zl 从 .obj 文件中移除默认库名


/Zp n 封装结构成员


/Zs 只检查语法


链接


选项 作用


/F 设置堆栈大小


/LD 创建动态链接库


/LDd 创建调试动态链接库


/link 将指定的选项传递给 LINK


/MD 使用 MSVCRT.lib 编译以创建多线程 DLL


/MDd 使用 MSVCRTD.lib 编译以创建调试多线程 DLL


/ML 使用 LIBC.lib 编译以创建单线程可执行文件


/MLd 使用 LIBCD.lib 编译以创建调试单线程可执行文件


/MT 使用 LIBCMT.lib 编译以创建多线程可执行文件


/MTd 使用 LIBCMTD.lib 编译以创建调试多线程可执行文件


预编译头


选项 作用


/Y- 忽略当前生成中的所有其他预编译头编译器选项


/Yc 创建预编译头文件


/Yd 将完整的调试信息放在所有对象文件中


/Yu 在 成期间使用预编译头文件


/YX 自动处理预编译头


杂项


选项 作用


@ 指定响应文件


/ 列出编译器选项


/c 编译但不链接


/H 限制外部(公共)名称的长度


/HELP 列出编译器选项


/J 更改默认的 char 类型


/NOLOGO 取消显示登录版权标志


/QI0f 确保 Pentium 0

-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: