visual studio里的几个输出的设置及一些文件的作用

时间:2021-06-01 00:22:05

首先是 OutPut Directory ,它的值不会直接影响到你文件的输出,但它会间接的影响其他输出,比方说默认值中包含有$(OutDir).

Intermediate Directory ,中间目录,生成的obj文件,预编译头,预编译相关的idb及pdb,buildlog都会在这里.

idb 是系统生的成的状态信息,可以加速随后的编译

pdb 包含调试信息

Linker->General->OutPut File,输出文件,虽然填的是exe的路径,但.ilk文件会按这个路径输出.

Linker->Debugging->Genrerate Program Database File,输出的pdb文件

Linker->Advanced->Import Library 指示了将随同dll生成的lib文件输出的文件名和路径

DSW:全称是Developer   Studio   Workspace,*别的配置文件,记录了整个工作空间的配置信息,她是一个纯文本的文件,在vc创建新项目的时候自动生成   
DSP:全称是Developer   Studio   Project,也是一个配置文件,不过她记录的是一个项目的所有配置信息,纯文本文件   
OPT:与DSW、DSP配合使用的配置文件,她记录了与机器硬件有关的信息,同一个项目在不同的机器上的opt文件内容是不同的   
CLW:记录了跟ClassWizard相关的信息,如果丢失了clw文件,那么在Class   View面板里就没有类信息   
PLG:实际上是一个超文本文件,可以用Internet   Explorer打开,记录了Build的过程,是一个日志型文件   
RC:资源描述文件,记录了所有的资源信息,在资源编辑器里作的修改,实际上都是对RC文件的修改   
RC2:附加的资源描述文件,不能直接资源编辑器修改,只能手工添加,可以用来添加额外的资源   
RES:经过资源编辑器编译之后的资源文件,以二进制方式存放   
SBR:编译器生成的浏览信息文件,在代码导航的时候非常有用,她需要在编译时指定/FR或者/Fr开关   
BSC:BSCMAKE.EXE将所有的SBR文件作为输入,经过处理之后输出一个BSC文件,在代码导航的时候实际用到的是BSC文件   
ILK:当选定渐增型编译连接时,连接器自动生成ILK文件,记录连接信息   
PDB:全称是Program   DataBase,即程序数据库文件,用来记录调试信息,是一个相当重要的文件,没有他,程序无法正常调试   
LIB:如果项目输出是Dll的话,一般会输出一个跟项目同名的Lib文件,记录输出的函数信息   
EXP:同Lib,是跟Dll一起生成的输出文件   
PCH:全称是PreCompiled   Header,就是预先编译好的头文件,在编译时指定/Yu开关时编译器自动生成

关于,ilk文件及渐增式编译连接

:       VS2005编译时出现这样的错误:
: Compiling...
: Image.cpp
: Linking...
: LINK : warning LNK4076: invalid incremental status file "Debug/code.ilk";
:             linking nonincrementally
: code.exe - 0 error(s), 1 warning(s)

原因:

VC编译时可以选择incremental linking(渐增式编译),也就是每次重新编译并不编译
所有的源文件,只编译改动过的文件。而编译器怎么知道哪些编译过哪些每编译过呢,
除了检查修改时间外,这个ilk文件也是很重要的信息。
如果你因为误操作或者VC自己的BUG引起了ilk文件的损坏,下一次编译时当然无法根据
ilk进行incremental linking了。但是在这种情况下也没什么大问题,VC自己会解决的,
所以也只出了一个警告。

解决办法:

把Dubug目录下.ilk文件强行删掉再重新编译一次就行了。