Visual Studio项目目录和文件说明

Visual Studio项目属性配置
VS6.0以及之前的版本是非常旧了,跟VS2002以及之后的版本有非常大的差别。

VS2002之后,虽然每个版本都有变化。但是思想上已经非常成熟了。

vc5,6的工程文件是.dsp

vc2002-2008工程文件是vcproj

vc2010之后是vcxproj

vcproj和vcxproj都是xml格式的。


我这里是使用VS2013的,内容可能跟其他版本有细微差别,但是都非常有参考价值了。

VS使用方案管理项目,一个解决方案下可以包含多个项目。
默认情况下,VS解决方案总目录下包含sln和一个项目文件夹,在编译器中生成debug和release解决方案后,总目录下还会生成对应的debug和release目录(存放的是中间编译文件obj)。

下面结合例子讲一下:solution为创建的解决方案,demo为创建的项目

解决方案solution总目录如下:


ipch目录内的文件和.sdf文件是visual studio用来保存预编译的头文件和Intellisense用的,删除这些文件对于工程开发完全没有影响。不能提交svn

.opensdf看名字就差不多知道意思了,好像只有打开工程的时候才会出现,关闭就会消失,估计是sdf的临时文件。不能提交svn

.sln(Visual Studio.Solution)通过为环境提供对项目、项目项和解决方案在磁盘上的位置的引用,可以将他们组织到解决方案中。需要提交svn

.suo(solution user option)解决方案用户选项,记录所有将与解决方案建立关联的选项,存储了用户对界面的自定义配置,包括布局、断点、打开的文件等。不能提交svn


项目demo目录如下:


.vcxproj项目文件

.vcxproj.filters用于项目下文件的虚拟目录,需要提交到svn

.vcxproj.user用户的一些相关配置,不能提交svn


除了这些,在Debug和Release目录下,还有一些文件。

.exe可执行文件

.exp导出库文件的文件,只有dll工程才有,包含了导出函数和数据项信息。链接工具使用这类文件来创建动态链接库。

.def告知编辑器不要以microsoft编译器的方式处理函数名,而以制定的某方式编译导出函数,这样可以避免由于VC++编辑器的独特处理方式引起的链接错误。

.ilk增量编译(incremental linking),取消增量编译可以不生成这种文件,对于大工程来说可能会变慢。

.pdb帮助软件调试的文件

.manifest文件为了解决不同的程序调用相同名称的但是不同版本的dll产生的问题。


posted @ 2017-02-13 18:26  肥宝游戏  阅读(989)  评论(0编辑  收藏  举报