本文主要是介绍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信息