背景:记录一下VC2010程序运行后生成的各种文件格式的含义。
说明:以【Class1】项目为例,文件夹中一级目录如下所示:
其中①【Class1】文件夹中存放的内容如下:
【.vcxproj】后缀文件是将工程中的所有文件和配置信息都记录在一起形成整体的文件,包含了一些include path、SourcePath和LibraryPath这些信息。
【.vcxproj.filters】后缀文件是筛选器文件,指定哪些是头(header)文件,那些是source文件,Resource Files,Form Files等等。
【 .vcxproj.user】后缀文件是本地化用户配置,允许多个用户使用自己喜好的方式配置这个项目(例如打开项目时候窗体位置等与项目内容无关的配置)。
②【Debug】文件夹:Debug表示调试版本,包含调试信息,所以容量比 Release 大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试。
A:【.exe】后缀的文件表示可执行文件,但是移植到其他电脑上无法直接运行。
B:【.ilk】后缀的文件:全称为“Incremental Linking”,意即增量链接。ilk 文件会在链接器阶段生成,作用是帮助链接器更快地进行链接操作,因为它包含了一些已经解析和重定位的信息,可以减少链接器的工作量。当选定渐增型编译链接时,链接器自动生成ILK文件,记录链接信息,也就是每次重新编译并不编译所有的源文件,只编译改动过的文件。而编译器怎么知道哪些编译过哪些未编译过呢,除了检查修改时间外,这个ilk文件也是很重要的信息。
C:【.pdb】后缀的文件:PDB(Program Data Base),意即程序的基本数据,是VC编译链接时生成的文件。DPB文件主要存储了VC调试程序时所需要的基本信息,主要包括源文件名、变量名、函数名、FPO(帧指针)、对应的行号等等。
③【ipch】文件夹:用来保存预编译的头文件和Intellisense用的,但是占用内存较大,一般会采取相应的措施删除掉。详情请参考:VisualStudio 产生的.ipch文件可以删除吗?-优快云博客
④【Release】文件夹:Release表示发布版本,不对源代码进行调试,编译时对应用程序的速度进行优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。(调试信息可在单独的PDB文件中生成)。
⑤【.sdf】为后缀文件名的文件表示用来保存预编译的头文件。
⑥【.sln】为后缀文件名的文件表示Visual Studio 解决方案文件格式。因为 Visual Studio 对解决方案文件的自动修复能力是非常强的。但是如果遇到自动解冲突错误或者编译不通过了,那么此文件还是需要手工修改的。