VC 编译参数介绍

简介: VC编译器的编译链接参数非常之多,对程序生成在细节上的控制也是非常强大的。要深入了解编译器参数是比较困难的,但作个初步认识还是不太难。 编译参数可以在Project Setting中查看(Project菜单再选择Setting),如下图:   这些参数究竟代表什么意思了?可以通过在CMD窗口下输入cl /help(注1)查看各个参数的含义。

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

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

 

这些参数究竟代表什么意思了?可以通过在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编译器在DebugRelease设置下编译参数的区别

 

 

 

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

 

 

 

 

转载请标明出处,原文地址:http://www.cnblogs.com/morewindows/archive/2011/08/29/2158807.html

目录
相关文章
|
10月前
|
存储 监控 安全
前端框架的数据驱动方式如何保证数据的安全性?
总之,前端框架的数据驱动方式需要综合运用多种手段来保证数据的安全性。从传输、存储、访问控制到防范攻击等各个方面进行全面考虑和实施,以确保用户数据的安全可靠。同时,不断加强安全管理和技术创新,以应对不断变化的安全挑战。
348 60
|
虚拟化
VMware虚拟机和主机互相ping不通排查以及解决
VMware虚拟机和主机互相ping不通排查以及解决
VMware虚拟机和主机互相ping不通排查以及解决
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
八成职场人依赖AI工具下,“职业技能培训”的需求与应对策略
人工智能(AI)正深度重塑职场生态。数据显示,约八成职场人使用AI工具,00后互动频率最高。AI虽提升效率,但也带来技能退化风险。职业技能培训成为关键,如生成式人工智能认证(GAI认证)助力职场人掌握核心技术与应用方法。未来,职业技能培训与AI技术将共生共荣,推动职场人适应变革、实现成长。
|
前端开发 JavaScript 开发者
(css样式穿透详解)::v-deep的使用
(css样式穿透详解)::v-deep的使用
1080 0
|
存储 人工智能 运维
呼叫中心有哪些基础知识
什么是呼叫中心(call center)? 博主从事多年AI技术,外呼中心搭建,需要演示站或技术支持联系博主。 呼叫中心(英文是Call Center),就是在一个相对集中的场所,由一批服务人员组成的服务机构,通常利用计算机通讯技术,处理来自企业、顾客的咨询需求。例如10086热线客服电话就是一个call center的例子。
|
关系型数据库 Shell Windows
DOS环境下强制删除文件或非空文件夹_
DOS环境下强制删除文件或非空文件夹_
772 0
|
安全 Linux Shell
Linux账户密码过期安全策略设置
在Linux系统管理中,有时候需要设置账号密码复杂度(长度)、密码过期策略等,这个主要是由/etc/login.defs参数文件中的一些参数控制的的。它主要用于用户账号限制,里面的参数主要有下面一些: /etc/login.
1698 0
|
SQL 存储 缓存
Expert 诊断优化系列------------------给TempDB 降温
前面文章针对CPU、内存、磁盘、语句、等待讲述了SQL SERVER的一些基本的问题诊断与调优方式。为了方便阅读给出导读文章链接方便阅读: SQL SERVER全面优化-------Expert for SQL Server 诊断系列     这篇我们来说说TempDB,这个系统数据库如何进行优化,怎么样平衡他的使用。
1104 0