关键词不能为空

当前您在: 主页 > 英语 >

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编译链接选项的设置的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文