关键词不能为空

当前您在: 主页 > 英语 >

VC编译链接选项的设置

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-16 13:13
tags:

-

2021年2月16日发(作者:普通网)


VC


编译链接选项的设置


大家可能一直在用


VC


开发软件,但是对于这个编译器却未 必很了解。原因


是多方面的。


大多数情况下,

< br>我们只停留在


“使用”


它,


而不 会想去


“了解”


它。


因为它只是一个工 具,我们宁可把更多的精力放在


C++


语言和软件设计上。我们


习惯于这样一种“模式”



建立一个项 目,然后写代码,然后编译,反反复复调



< br>但是,所谓:


“公欲善其事,必先利其器”


。如果我们精 于


VC


开发环境,我


们是不是能够做得 更加游刃有余呢?



闲话少说。我们先来看一下


VC


的处理流程,大致分为两步:编译和连接。


源文件 通过编译生成了


.obj


文件;


所有< /p>


.obj


文件和


.lib


文件通过连接生成


.exe


文件或

.dll


文件。下面,我们分别讨论这两个步骤的一些细节。





1


、编译参数的设置。



主要通过


VC


的菜单项


Pr oject-> Settings-> C/C++


页来完成。我们可以看

< p>
到这一页的最下面


Project Options


中的内容,一般如下:



/nologo /MDd /W3 /Gm /GX /ZI /Od /D


/D


/Fo




各个参数代表的意义,


可以参考


Msdn



比如


/ nologo


表示编译时不在输出窗


口显示这些设置

< p>
(我们可以把这个参数去掉来看看效果)


等等。


一 般我们不会直


接修改这些设置,而是通过这一页最上面的


Cat egory


中的各项来完成。





1)


General



一些总体设置。


Warning


level


用来控制警告信息,


其中

< br>Level


1



< p>







Warnings


as


errors











理< /p>



Optimizations


是代码优 化,可以在


Category



Opt imizations


项中进行更细


的设置;

< br>Generate


browse


info

< p>
用以生成


.sbr


文件,记录类、变量等符号信息 ,


可以在


Category



Listing Files


项中进行更多的设置。


Debug info


,生成调


试信息:


None

< br>,不产生任何调试信息(编译比较快)



Line


Numbers


Only


,仅生


成全局的和外部符号的调试信息到


.OBJ


文件或


.EXE


文件,


减小目标文件的 尺寸;


C 7.0- Compatible


,记录调试器用到 的所有符号信息到


.OBJ


文件和


.E XE


文件;


Program


Data base


,创建


.PDB


文件记录所有 调试信息;


Program


Database


for



Edit & Contin ue


,创建


.PDB


文件记录所有调试 信息,并且支持调试时编辑。





2) C++ Language



pointer_to_member r epresentation


用来设置类定义


/


引用的先后关系,一般为


Best-Case Always

< br>表示在引用类之前该类肯定已经定


义了;


Enable


Exception


Handling



进行同步的异常处理;


Enable


Run-Time


Type


Inf ormation



使






< br>代
















Disable


Construction Displacements


,设 置类构造


/


析构函数调用虚函数问题。





3)


Code


Generation


:< /p>


Processor


表示代码指令优化,


可以为


80386



80486



Pentium



Pentium


Pro



或者


Blend


表示混合以上各种优化。


Use


run-time


library


用 以指定程序运行时使用的运行时库(单线程或多线程,


Debug


版本或


Release


版本)


,有一 个原则就是,一个进程不要同时使用几个版本的运行时库。


Single-Thread ed


,静态连接



库;

< br>Debug Single-Threaded


,静态连接



库;


Multithreaded



静态连接



库;


Debug


Multithreaded


< br>静态连接



库;


Multithr eaded


DLL



动态连接



库;


Debug


Multithreaded DLL


,动态连接



库。连接了单线程库就不支持多线


程调用,连接了多 线程库就要求创建多线程的应用程序。





Calling


conventi on


可以用来设定调用约定,


有三种:


__cdecl



__fastcall



__stdcall


。各种调用约定的主要区别在于,函数 调用时,函数的参数是从左


到右压入堆栈还是从右到左压入堆栈;


在函数返回时,


由函数的调用者来清理压


入堆栈的参数还是由 函数本身来清理;以及在编译时对函数名进行的命名修饰


(可以通过

Listing


Files


看到各种命名修饰方式)



Struct


member


alignment


用以指定数据结构中的成员变量在内存中是按几字节 对齐的,


根据计算机数据总


线的位数,


不同的对齐方式存取数据的速度不一样。


这个参数对数据包网络传输

等应用尤为重要,


不是存取速度问题,


而是数据位的精确定 义问题,


一般在程序


中使用


#prag ma pack


来指定。





4) Customize



Disable Language E xtensions


,表示不使用微软为标准


C


做的语言扩展;


Eliminate Duplicate Strings< /p>


,主要用于字符串优化(将字符


串放到缓充池里以节省空间)


,使用这个参数,使得



char *sBuffer =


char *tBuffer =




sBuffer


< br>tBuffer


指向的是同一块内存空间;


Enable Function-Level


Linking


,告诉编译器将各个函数按打包格式编译;


Enables


minimal


rebuild


,< /p>


通过保存关联信息到


.IDB


文件,使编 译器只对最新类定义改动过的源文件进行


重编译,提高编译速度;


Enable Incremental Compilation


,同样通过


.IDB



件保存的信息,只重编译最新改动 过的函数;


Suppress Startup Banner and


Information Messages


,用以控制参数是 否在


output


窗口输出。





5) Listing Files



Generate browse info


的功能上面已经提到过。这里


可以进行更多的设置。


Exclude Local Variables from Browse Info


表示是否


将局部变量的信息放到


.SBR

< p>
文件中。


Listing


file

< p>
type


可以设置生成的列表信


息文件的内容:< /p>


Assembly-Only Listing


仅生成汇编代码文 件(


.ASM


扩展名)



Assembly With Machine Code


生成机器代码和汇 编代码文件(


.COD


扩展名)



Assembly


With


Source


Code


生成源代码和 汇编代码文件



.ASM


扩展名)



Assembly,


Machine


Code,and


Source


生成 机器码、源代码和汇编代码文件(


.COD


扩展名)

< p>


Listing


file

< br>name


为生成的信息文件的路径,


一般为


Debug



Release


目录下,


生成的文件名自动取源文件的文件名。





6) Optimization s


:代码优化设置。可以选择


Maximize Speed< /p>


生成最快速


的代码,或


Minimize


Size


生成最小尺寸的程序,或者


C ustomize


定制优化。定


制的内容包括:





Assume No Aliasing


,不使用别名(提高速度)






Assume Aliasing Across Function Calls


,仅函数内部不使用别名;





Global Optimiza tions


,全局优化,比如经常用到的变量使用寄存器保存,


或者循环内的计算优化,如



i = -100;


while( i < 0 ){ i += x + y; }




会被优化为



i = -100;


t = x + y;


while( i < 0 ){ i += t; }


Generate


Intrinsic < /p>


Functions


,使用内部函数替换一些函数调用(提高速度 )




Improve Float Consistency


,浮点运算方面的优化;



Favor Small Code


,程序(

< br>exe



dll


)尺寸优化优先 于代码速度优化;



Favor Fast Code


,程序(


exe



dl l


)代码速度优化优先于尺寸优化;



Frame-Pointer Omission


,不使用帧指针,以提高函数调用速度;



Full Optimization


,组合了几种参数,以生 成最快的程序代码。





Inline function expansion


,内联 函数扩展的三种优化(使用内联可以节


省函数调用的开销,加快程序速度)



Disable


不使用内联;

Only


__inline


,仅


函数定义前有


inline



__in line


标记使用内联;


Any Suitable

< p>
,除了


inline



_ _inline


标记的函数外,编译器“觉得”应该使用内联的函数,都使用内联。





7)


Precompiled


Headers

:预编译头文件的设置。使用预编译可以提高重复


编译的速度。

VC


一般将一些公共的、不大变动的头文件(比如


afxw in.h


等)集


中放到


stdafx .h


中,这一部分代码就不必每次都重新编译(除非是


Rebu ild


All







8)


P reprocessor


:预编译处理。可以定义


/

< p>
解除定义一些常量。


Additional


include


directories

,可以指定额外的包含目录,一般是相对于本项目的目录,



..Include




2


、连接参数的设置



主要通过


VC


的菜单项


Pro ject-> Settings-> Link


页来完成。我们可以看

-


-


-


-


-


-


-


-



本文更新与2021-02-16 13:13,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/658796.html

VC编译链接选项的设置的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文