VisualStudio 各目录含义

引言

某天用 Visual Studio 创建了一个解决方案,结果解决方案目录下出现了各种不理解的文件和后缀,强迫症使我特意去查阅了一下这些目录和文件的功能,因此在这里总结一下。假设我们的解决方案名称为 cppStudy。


General

cppStudy
	├─ .vs
	├─ x64
	├─ cppStudy
	└─ cppStudy.sln
  • .vs - 存储解决方案的配置和状态,包括窗口布局,选项卡,操作记录,文件文档,某些自定义配置,开发环境,调试断点等;
  • x64 - x64 模式下生成的相关可执行文件;
  • cppStudy - project,工程目录,表示一个解决方案下的子工程。该目录包含该子工程所有的头文件,源代码等;
  • cppStudy.sln - soluion,解决方案配置文件,解决方案指一个大型项目整体的工作环境。该文件用于组织多个工程和相关的元素到一个解决方案中,鼠标双击它就能用 VS 打开整个项目。
x64
├─ Debug
│	├─ cppStudy.exe
│	├─ cppStudy.ilk
│	└─ cppStudy.pdb
└─ Release
	├─ cppStudy.exe
	├─ cppStudy.iobj
	├─ cppStudy.ipdb
	└─ cppStudy.pdb

Debug

  • .ilk - 增量链接文件,增量链接是相对于完整链接而言的,使每次源代码的更改只需要更新可执行文件中受影响的部分,不需重新构建整个可执行文件;
  • .pdb - 程序调试数据库,编译链接时生成,主要存储了 VS 调试时需要的基本信息。

Release

  • iobj - 中间目标程序
  • ipdb - 中间程序调试数据库
cppStudy (project)
	├─ x64
	├─ cppStudy.vcxproj
	├─ cppStudy.vcxproj.filters
	├─ cppStudy.vcxproj.user
	├─ cppStudy.cpp
	├─ stdafx.cpp
	├─ stdafx.h
	└─ targetver.h
  • x64 - 对应该子工程的一些目标代码,程序调式数据库,运行日志等;
  • .vcxproj - 工程的属性文件;
  • .vcxproj.filters - 工程中的目录组织结构;
  • .vcxproj.user - 用户相关工程配置;
  • targetver.h - 用于定义程序运行的环境,如限制程序只能在 XP 下运行。

stdafx.h & stdafx.cpp & .pch

.pch 用于保存预编译好的文件,一般会将工程中较稳定的不会经常修改的代码预编译好放在其中,以后不再编译这部分,直接使用预编译结果,从而提高编译的速度。.pch 通过编译 stdafx.cpp 生成,编译器通过 stdafx.h 使用 .pch,所有在指令 #include “stdafx.h” 前的代码都是预编译的,编译器将跳过跳过该编译指令,转而编译之后的代码。

你可能感兴趣的:(visual,studio,windows,ide)