本文主要是介绍MSVC命令行参数,对于使用MSVC是很有帮助的。
1 cl,MSVC编译器
/c:只编译链接
/Za:禁止语言扩展
/link:链接指定的模块或给链接器传递参数
/Od:禁止优化
/O2:以允许速度最快为目标优化
/O1:以最节省空间为目标优化
/GR或/GR-:开启或关闭RTTI
/Gy:开启函数级别链接
/GS或/GS-:开启或关闭
/Fa:输出汇编文件
/E:只进行预处理并且把结果输出
/I:指定头文件包含目录
/Zi:启用调试信息
/LD:编译产生DLL文件
/LDd:编译产生DLL文件(调试版)
/MD:与动态多线程版本运行库MSVCRT.LIB链接
/MDd:与调试版动态多线程版本运行库MSVCRTD.LIB链接
/MT:与静态多线程版本运行库LIBCMT.LIB链接
/MTd:与调试版静态多线程版本运行库LIBCMTD.LIB链接
2 link,MSVC链接器
/BASE:address:指定输出文件的基地址
/DEBUG:输出调试模式版本
/DEF:filename:指定模块定义文件.DEF
/DEFAULTLIB:library:指定默认运行库
/DLL:产生DLL
/ENTRY:symbol:指定程序路口
/EXPORT:symbol:指定某个符号位导出符号
/HEAP:指定默认堆大小
/LIBPATH:dir:指定链接时库搜索路径
/MAP:产生链接MAP文件
/NODEFAULTLIB:禁止默认运行库
/OUT:指定输出文件名
/RELEASE:已发布版本产生输出文件
/STACK:指定默认栈大小
/SUBSYSTEM:指定子系统
3 dumpbin,MSVC的COFF/PE文件查看器
/ALL:显示所有信息
/ARCHIVEMEMBERS:显示LIB文件中的所有目标文件列表
/DEPENDENTS:显示文件的动态链接依赖关系
/DIRECTIVES:显示链接器指示
/DISASM:显示反汇编
/EXPORTS:显示导出函数表
/HEADERS:显示文件头
/IMPORTS:显示导入函数表
/LINENUMBERS:显示行号信息
/SECTION:name:显示某个段
/SECTION:显示文件概要信息
/SYMBOLS:显示文件符号表
/TLS:显示线程局部存储TLS信息