Visual C 编译器常用选项配置
2008-02-23 05:32:55来源:互联网 阅读 ()
/nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_Windows" /D "_AFXDLL" /D "_M
BCS" /Fp"Debug/WritingDlgTest.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
各个参数代表的意义,能够参考Msdn。比如/nologo表示编译时不在输出窗口显示这些配置(我们能够把这个参数去掉来看看效果)等等。一般我们不会直接修改这些配置,而是通过这一页最上面的Category中的各项来完成。
1) General:一些总体配置。Warning level用来控制警告
2) C Language:pointer_to_member representation用来配置类定义/引用的先后关系,一般为Best-Case Always表示在引用类之前该类肯定已定义了;Enable Exception Handling,进行同步的异常处理;Enable Run-Time Type Information迫使编译器增加代码在运行时进行对象类型检查;Disable Construction Displacements,配置类构造/析构函数调用虚函数
3) Code Generation:Processor表示代码指令优化,能够为80386、80486、Pentium、Pentium Pro,或Blend表示混合以上各种优化。Use run-time library用以指定程式运行时使用的运行时库(单线程或多线程,Debug版本或Release版本),有一个原则就是,一个进程不要同时使用几个版本的运行时库。Single-Threaded,静态连接LIBC.LIB库;Debug Single-Threaded,静态连接LIBCD.LIB库;Multithreaded,静态连接LIBCMT.LIB库;Debug Multithreaded,静态连接LIBCMTD.LIB库;Multithreaded DLL,动态连接MSVCRT.DLL库;Debug Multithreaded DLL,动态连接MSVCRTD.DLL库。连接了单线程库就不支持多线程调用,连接了多线程库就需要创建多线程的
Calling convention能够用来设定调用约定,有三种:__cdecl、__fastcall和__stdcall。各种调用约定的主要区别在于,函数调用时,函数的参数是从左到右压入堆栈还是从右到左压入堆栈;在函数返回时,由函数的调用者来清理压入堆栈的参数还是由函数本身来清理;连同在编译时对函数名进行的命名修饰(能够通过Listing Files看到各种命名修饰方式)。Struct member alignment用以指定
4) Customize:Disable Language Extensions,表示不使用微软为标准C做的
char *sBuffer = "This is a character buffer";
char *tBuffer = "This is a character buffer";
sBuffer和tBuffer指向的是同一块内存空间;Enable Function-Level Linking ,告诉编译器将各个函数按打包格式编译;Enables minimal rebuild,通过保存关联
5) Listing Files:Generate browse info的功能上面已提到过。这里能够进行更多的配置。Exclude Local Variables from Browse Info表示是否将局部变量的信息放到.SBR文档中。Listing file type能够配置生成的列表信息文档的内容:Assembly-Only Listing仅生成汇编代码文档(.ASM扩展名);Assembly With Machine Code生成
6) Optimizations:代码优化配置。能够选择Maximize Speed生成最快速的代码,或Minimize Size生成最小尺寸的程式,或Customize定制优化。定制的内容包括:
Assume No Aliasing,不使用别名(提高速度);
Assume Aliasing Across Function Calls,仅函数内部不使用别名;
Global Optimizations,全局优化,比如经常用到的变量使用寄存器保存,或循环内的计算优化,如
i = -100;
while( i < 0 ){ i = x y;}
会被优化为
i = -100;
t = x y;
while( i < 0 ){i = t;}
Generate Intrinsic Functions,使用内部函数替换一些函数调用(提高速度);
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇: 数据结构C语言实现系列——二叉树
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash