VC 编译参数介绍

 VC编译器的编译链接参数非常之多,对程序生成在细节上的控制也是非常强大的。要深入了解编译器参数是比较困难的,但作个初步认识还是不太难。

编译参数可以在Project Setting中查看(Project菜单再选择Setting),如下图:

VC 编译参数介绍

这些参数究竟代表什么意思了?可以通过在CMD窗口下输入cl /help(注1)查看各个参数的含义。

C/C++ COMPILER OPTIONS

                        -OPTIMIZATION-优化

/O1 minimize space                /Op[-] improve floating-pt consistency

/O2 maximize speed                /Os favor code space

/Oa assume no aliasing              /Ot favor code speed

/Ob<n> inline expansion (default n=0)  /Ow assume cross-function aliasing

/Od disable optimizations (default)     /Ox maximum opts. (/Ogityb1 /Gs)

/Og enable global optimization        /Oy[-] enable frame pointer omission

/Oi enable intrinsic functions

 

                         -CODE GENERATION-代码生成

/G3 optimize for 80386                 /Gy separate functions for linker

/G4 optimize for 80486                 /Ge force stack checking for all funcs

/G5 optimize for Pentium               /Gs[num] disable stack checking calls

/G6 optimize for Pentium Pro            /Gh enable hook function call

/GB optimize for blended model (default)  /GR[-] enable C++ RTTI

/Gd __cdecl calling convention          /GX[-] enable C++ EH (same as /EHsc)

/Gr __fastcall calling convention         /Gi[-] enable incremental compilation

/Gz __stdcall calling convention         /Gm[-] enable minimal rebuild

/GA optimize for Windows Application   /EHs enable synchronous C++ EH

/GD optimize for Windows DLL         /EHa enable asynchronous C++ EH

/Gf enable string pooling               /EHc extern "C" defaults to nothrow

/GF enable read-only string pooling      /QIfdiv[-] enable Pentium FDIV fix

/GZ enable runtime debug checks        /QI0f[-] enable Pentium 0x0f fix

 

                         -OUTPUT FILES-输出文件

/Fa[file] name assembly listing file     /Fo<file> name object file

/FA[sc] configure assembly listing      /Fp<file> name precompiled header file

/Fd[file] name .PDB file              /Fr[file] name source browser file

/Fe<file> name executable file         /FR[file] name extended .SBR file

/Fm[file] name map file

 

                         -PREPROCESSOR-预处理器

/C don't strip comments               /FI<file> name forced include file

/D<name>{=|#}<text> define macro     /U<name> remove predefined macro

/E preprocess to stdout                /u remove all predefined macros

/EP preprocess to stdout, no #line       /I<dir> add to include search path

/P preprocess to file                  /X ignore "standard places"

 

                         -LANGUAGE-语言

/Zi enable debugging information        /Zl omit default library name in .OBJ

/ZI enable Edit and Continue debug info  /Zg generate function prototypes

/Z7 enable old-style debug info         /Zs syntax check only

/Zd line number debugging info only     /vd{0|1} disable/enable vtordisp

/Zp[n] pack structs on n-byte boundary   /vm<x> type of pointers to members

/Za disable extensions (implies /Op)     /noBool disable "bool" keyword

/Ze enable extensions (default)

 

                         -MISCELLANEOUS-杂项

/?, /help print this help message        /V<string> set version string

/c compile only, no link               /w disable all warnings

/H<num> max external name length     /W<n> set warning level (default n=1)

/J default char type is unsigned         /WX treat warnings as errors

/nologo suppress copyright message     /Yc[file] create .PCH file

/Tc<source file> compile file as .c      /Yd put debug info in every .OBJ

/Tp<source file> compile file as .cpp    /Yu[file] use .PCH file

/TC compile all files as .c             /YX[file] automatic .PCH

/TP compile all files as .cpp           /Zm<n> max memory alloc (% of default)

 

                        -LINKING-链接

/MD link with MSVCRT.LIB       /MDd link with MSVCRTD.LIB debug lib

/ML link with LIBC.LIB           /MLd link with LIBCD.LIB debug lib

/MT link with LIBCMT.LIB        /MTd link with LIBCMTD.LIB debug lib

/LD Create .DLL                 /F<num> set stack size

/LDd Create .DLL debug libary      /link [linker options and libraries]

 

全英文看着慢,其实在MSDN上可以找到中文说明。运行MSDN后,点击“目录”再在右边选择——开发工具和语言-->Visual Studio文档-->Visual C++-->生成C/C++程序-->C/C++生成参考-->编译C/C++程序-->编译器选项。下图展示了MSDN对编译器选项的说明,当然登录MSDN的网站也可以得到相同的信息。

VC 编译参数介绍

 

 

下一篇将详细解释VC编译器在Debug和Release设置下编译参数的区别。

 

注1.cl.exe 是一种控制 Microsoft C 和 C++ 编译器和链接器的工具。编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。 链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。更多内容可以访问MSDN的网站

 

 

 

转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/6730432

更多相关文章
  • 7月9日开始,有黑客团队对台湾和香港网站发起攻击,所用工具竟然是Hacking Team泄出的Flash漏洞利用程序PoisonIvy. 中枪的都是热门的 攻击者破坏了台湾当地电视台网站.教育机构.一个宗教研究机构.一个知名政党以及一家在香港很受欢迎的新闻网站.值得注意的是,受影响的网站提供的内容信 ...
  • 因为是随便一想就想出的方法,没来得及用搜索引擎了解相关的情况,老神仙们见笑了. 通常,程序把一些设置,配置保存在一个专门的文件中或者注册表中,但在一些情况下,这样非常不方便.比如偷OICQ号的那种程序(没用过,也叫不上名来),提前设置好邮箱,然后放在别人机子上运行,通过某种方法取得OICQ密码,最后 ...
  • 易网科技讯 北京时间07月30日消息,微软已经在Windows 10中提供了输出Xbox One游戏视频的支持,但具体做法究竟是怎样的?
  • /************************************************************************* * * 无论何时,如果使用的算法需要指定一个目标区间,要么必须确保区间足够大 * 要么确保它会随着算法的运行而增大. * 要在算法执行过程中增大目标区 ...
  • <?php /** * 视图模型 * */ class ViewBatchModel extends ViewModel{ public $viewFields = array( 'Jinxiao_batch'=>array('id','orderid','proid','subid', ...
  • 陈姿羊依托淘宝.京东等线上平台,不到十年的时间内,大大小小的互联网服装品牌如雨后春笋般涌现出来.而作为电商渠道的最大品类,"韩都衣舍"."裂帛"."茵曼"等线上服装品牌也在摸爬滚打中渐成气候.随着服装上市公司对线上渠道的跑马圈地,此前隐匿于 ...
一周排行
  • 或者关闭selinux setenforce 0 [[email protected] bin]# ./sqlplus ./sqlplus: error while loading shared libraries: /home/mnu ...
  •     <Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Replicati ...
  • 不久前,中关村上市公司协会举办了<2012年中关村上市公司竞争力报告>(以下简称<报告>).<报告>显示,中关村全体224家上市公司2012年的总市值达13554亿元,资产总额达1 ...
  • <!  # Software................Tickets 2.13  # Vulnerability...........SQL Injection  # Threat Level...... ...
  • Ubuntu下VirtualBox虚拟机安装XP的设置,USB设备及摄像头的启用   在LINUX下工作,有时难免想用一些windows 下的程序,比如QQ或着购物,当下最好的选择是安装XP虚拟机,下面   是一些具 ...
  • 考虑两个字符串,我们用dp[i][j]表示字串第到i个和字符串到第j个的总数,因为字串必须连续 因此dp[i][j]可以有dp[i][j-1]和dp[i-1][j-1]递推而来,而不能由dp[i-1][j]递推而来. ...
  • synchronized这类线程同步的机制可以解决多线程并发问题,在这种解决方案下,多个线程访问到的,都是同一份变量的内容.为了防止在多线程访问的过程中,可能会出现的并发错误.不得不对多个线程的访问进行同步,这样也就 ...
  • 黑马韩前成linux从入门到精通之LAMP综合测试   主要议程: 快速搭建LAMP Apache虚拟目录 Apache虚拟主机 授权和认证 MysqL主从服务器的配置 Rsync同步设定 假设LAMP镜像站点实验 ...
  • 对于RBF神经网络的原理已经在我的博文<机器学习之径向基神经网络(RBF NN)>中介绍过,这里不再重复.今天要介绍的是常用的RBF神经网络学习算法及RBF神经网络与多层感知器网络的对比. 一.RBF神经 ...
  • 今天围观刘汝佳神犇的白书发现了一个好用的函数: next_permutation(); 可以用于可重, 或者不可重集, 寻找下一个排列. 时间复杂度尚不明. //适用于不可重和可重集的排列. # include &l ...