Visual Studio 2017工程项目的几个重要文件解析

本文介绍了VS项目的标准目录结构,详细解释了.sln、.vcxproj等配置文件的作用及意义,并区分了工程和个人配置的区别。此外,还列举了一些常见文件如.suo、.pdb等的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般的VS项目目录结构为:

  • 解决方案(solution)名字
    • xx.sln 配置文件
      • 工程名字1
        • xx.vcxproj 配置文件
        • xx.vcxproj.user 配置文件
        • xx.vcxproj.filters 配置文件
      • 工程名字2
        • xx.vcxproj 配置文件
        • xx.vcxproj.user 配置文件
        • xx.vcxproj.filters 配置文件

在visual studio2017中,同一个解决方案(solution)下面有多个工程项目(project)。所以,.sln配置文件的作用范围是整个解决方案。.vcxproj配置文件、.vcxproj.user配置文件和.vcxproj.filters配置文件的作用范围是其所在的工程项目中。vcxproj配置文件保存了整个项目的配置信息。对vcxproj字面上的理解是,vc表示visual studio,proj表示project,x表示2010年之后的vc版本。2010之前的版本用vcproj表示。知道了它们的作用范围之后,现在就可以很清楚地知道,如果我们的项目中只有一个工程,那么我们可以不需要sln文件,在windows上面双击vcxproj文件就可以打开。

  • xx.vcxproj.user 配置文件配置文件表示用户在使用VC的时候根据个人操作习惯所保存的配置信息,比如用户点击“显示所有文件”的按钮,对应的配置会保存在这个文件中。目的是保存用户对VC的操作习惯。

  • .vcxproj.filters:当建立一个虚拟目录的时候,配置的值保存在这里。如果你的VS是英文版的,就会发现建立一个虚拟目录叫“Add Filter”。

一般情况下,如果我们要把源码共享到github中,只需要提交工程相关的配置文件,不提交用户个人偏好相关的配置文件。所谓的个人偏好相关,是指根据用户个人的VS使用习惯而保存的配置信息,比如选择了查看所有文件选项,打开了某一个文件。而工程相关的配置是指工程建立相关的信息,不受用户偏好的影响,比如解决方案的名字是什么,这个解决方案下面有哪些project。所以,我们只需要上传sln配置文件、vcxproj和vcxproj.filters配置文件就可以了,当然还包括源码。

另外几个常见的文件:

  • ipch目录内的文件和.sdf文件是visual studio用来保存预编译的头文件和Intellisense用的,删除这些文件对于工程开发完全没有影响。
  • .opensdf看名字就差不多知道意思了,好像只有打开工程的时候才会出现,关闭就会消失,估计是sdf的临时文件。
  • .suo(solution user option)解决方案用户选项,记录所有将与解决方案建立关联的选项,存储了用户对界面的自定义配置,包括布局、断点、打开的文件等。以便下一次你打开Visual Studio可以恢复这些设置,一般为隐藏文件;不提交到github.

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

  • .exe可执行文件

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

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

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

  • .pdb帮助软件调试的文件

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


参考了:
https://blog.csdn.net/u012175089/article/details/55050617
https://blog.csdn.net/xu_fengyu/article/details/81841877

结束!谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值