VC编译器参数设置汇总

       平时用MS下的编译器都是可视化操作,熟不知就是在完善makefile而已,今天突然想分析一个lua的luavs.bat的文件如何在VS2008下进行编译,发现已经N年没有搞嵌入式的自己居然makefile也写不来了,好吧现在把MS的编译器中常用的参数百度了一下如下方便以后自己参考啦~

 

VC编译器参数设置汇总

CL.exe的全部命令开关  
   
  /C:在预处理输出中保留注释语句  
  /c:只编译,不连接,相当于在"Build"菜单下选择了"Compile"  
  /D:定义常量和宏,与源程序里的#define   有相同效果  
  /E:预处理C、C++源文件,将源文件中所有的预编译指令及宏展开,将注释去掉,然后将预处理器的输出拷贝至标准输出设备输出,并且在每个文件的开头和末尾加入#line  
  /EH:指定编译器用何种异常处理模型  
  /EP:同/E,只是去掉了#line  
  /F:设置程序的堆栈大小  
  /FA:设置生成何种列表文件(汇编、汇编与机器码、汇编与源码、汇编与机器码以及源码)  
  /Fa:指定用/FA设置的列表文件的存放路径及(或)文件名  
  /FD:生成文件的相互依赖信息  
  /Fd:设置程序数据库文件(PDB)的存放路径及(或)文件名  
  /Fe:设置最终可执行文件的存放路径及(或)文件名  
  /FI:预处理指定的头文件,与源文件中的#include有相同效果  
  /Fm:创建map文件  
  /Fo:设置编译后Obj文件的存放路径及(或)文件名  
  /Fp:设置预编译文件(pch)的存放路径及(或)文件名  
  /FR:生成浏览信息(sbr)文件  
  /Fr:同/FR,不同之处在于/Fr不包括局部变量信息  
  /G3:为80386处理器优化代码生成  
  /G4:为80486处理器优化代码生成  
  /G5:为Pentium处理器优化代码生成  
  /G6:为Pentium   Pro处理器优化代码生成  
  /GA:为Windows应用程序作优化  
  /GB:为Pentium处理器优化代码生成,使用80386、80486、Pentium、Pentium   Pro的混合指令集,是代码生成的默认选项(程序属性选项中Processor对应Blend)  
  /GD:为Windows动态库(dll)作优化,此开关在VC6中没有实现  
  /Gd:指定使用__cdecl的函数调用规则  
  /Ge:激活堆栈检测  
  /GF:消除程序中的重复的字符串,并将她放到只读的缓冲区中  
  /Gf:消除程序中的重复字符串  
  /Gh:在每个函数的开头调用钩子(hook)函数--penter  
  /Gi:允许渐进编译  
  /Gm:允许最小化rebuild  
  /GR:允许运行时类型信息(Run-Time   Type   Infomation)  
  /Gr:指定使用__fastcall的函数调用规则  
  /Gs:控制堆栈检测所用内存大小  
  /GT:支持用__declspec(thread)分配的数据的fier-safety  
  /GX:允许同步异常处理,与/EHsc开关等价  
  /Gy:允许编译器将每一个函数封装成COMDATs的形式,供连接器调用  
  /GZ:允许在Debug   build   的时候捕捉Release   build的错误  
  /Gz:指定使用__stdcall的函数调用规则  
  /H:限制外部名字的长度  
  /HELP:列出编译器的所有的命令开关  
  /I:指定头文件的搜索路径  
  /J:将char的缺省类型从signed   char改成unsigned   char  
  /LD:创建一个动态连接库  
  /LDd:创建一个Debug版本的动态链接库  
  /link:将指定的选项传给连接器  
  /MD:选择多线程、DLL版本的C   Run-Time库  
  /MDd:选择多线程、DLL、Debug版本的C   Run-Time库  
  /ML:选择单线程版本的C   Run—Time库  
  /MLd:选择单线程、Debug版本的C   Run—Time库  
  /MT:选择多线程版本的C   Run-Time库  
  /MTd:选择多线程、Debug版本的C   Run—Time库  
  /nologo:不显示程序的版权信息  
  /O1:优化使产生的可执行代码最小  
  /O2:优化使产生的可执行代码速度最快  
  /Oa:指示编译器程序里没有使用别名,可以提高程序的执行速度  
  /Ob:控制内联(inline)函数的展开  
  /Od:禁止代码优化  
  /Og:使用全局优化  
  /Oi:用内部函数去代替程序里的函数调用,可以使程序运行的更快,但程序的长度变长  
  /Op:提高浮点数比较运算的一致性  
  /Os:产生尽可能小的可执行代码  
  /Ot:产生尽可能块的可执行代码  
  /Ow:指示编译器在函数体内部没有使用别名  
  /Ox:组合了几个优化开关,达到尽可能多的优化  
  /Oy:阻止调用堆栈里创建帧指针  
  /Q1f:对核心级的设备驱动程序生成单独的调试信息  
  /QI0f:对Pentium   0x0f错误指令作修正  
  /Qifdiv:对Pentium   FDIV错误指令作修正  
  /P:将预处理输出写到指定文件里,文件的后缀名为I  
  /TC:将命令行上的所有文件都当作C源程序编译,不管后缀名是否为.c  
  /Tc:将指定的文件当作C源程序编译,不管后缀名是否为.c  
  /TP:将命令行上的所有文件都当作C++源程序编译,不管后缀名是否为.cpp  
  /Tp:将指定文件当作C++源程序编译,不管后缀名是否为.cpp  
  /U:去掉一个指定的前面定义的符号或常量  
  /u:去掉所有前面定义的符号或常量  
  /V:在编译的obj文件里嵌入版本号  
  /vd:禁止/允许构造函数置换  
  /vmb:选择指针的表示方法,使用这个开关,在声明指向某个类的成员的指针之前,必须先定义这个类  
  /vmg:选择指针的表示方法,使用这个开关,在声明指向某个类的成员的指针之前,不必先定义这个类,但要首先指定这个类是使用何种继承方法  
  /vmm:设置指针的表示方法为Single   Inheritance   and   Multiple   Inheritance  
  /vms:设置指针的表示方法为Single   Inheritance  
  /vmv:设置指针的表示方法为Any   class  
  /W:设置警告等级  
  /w:禁止所有警告  
  /X:阻止编译器搜索标准的include   目录  
  /Yc:创建预编译头文件(pch)  
  /Yd:在所有的obj文件里写上完全的调试信息  
  /Yu:在build过程中使用指定的预编译头文件  
  /YX:指示编译器若预编译头文件存在,则使用它,若不存在,则创建一个  
  /Z7:生成MSC7.0兼容的调试信息  
  /Za:禁止语言扩展(Microsoft   Extensions   to   C)  
  /Zd:调试信息只包含外部和全局的符号信息以及行号信息  
  /Ze:允许语言扩展(Microsoft   Extensions   to   C)  
  /Zg:为源文件里面定义的每个函数生成函数原型  
  /ZI:生成程序库文件(Pdb)并支持Edit   and   Continue调试特性  
  /Zi:生成程序库文件(pdb),包含类型信息和符号调试信息  
  /ZL:从obj文件里去掉缺省的库文件名  
  /Zm:设置编译器的内存分配xianzhi  
  /Zn:禁止浏览信息文件里面的封装  
  /Zp:设置结构成员在内存里面的封装格式  
  /Zs:快速检查语法错误  

文章出处:飞诺网(www.diybl.com):http://www.diybl.com/course/3_program/vc/vc_js/2008914/142768.html

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值