Visual Studio各文件夹之间的关系

Visual Studio下各目录中存放不同的东西,涉及到各项目的属性配置,这里做一个小总结。

  • 一个解决方案包含若干个项目,假设新建一个项目ssyy, 解决方案起名为fangan,此时生成的最外层目录即为fangan(整个解决方案的内容都在这个文件夹内),其中包含解决方案配置文件fangan.sln和一个ssyy文件夹(整个ssyy项目的所有内容都在这个文件夹内),ssyy文件夹包含项目配置文件ssyy.vcproj和头文件.h以及源文件.cpp。如果在解决方案fangan下再建立一个新项目ssyy2,则会在fangan文件夹下生成一个ssyy2文件夹。
  • 另外,项目属性设置的目录起点为项目配置文件所在位置,即在项目头文件源文件位置。
  • 对于C++项目,解决方案总文件夹下包含解决方案配置文件sln、项目总文件夹、Debug文件夹以及Release文件夹,其中Debug和Release文件夹存放生成的结果exe和dll,而项目总文件夹下包含C++源文件、头文件、Debug和Release文件夹(此处的Debug和Release文件夹仅仅存放中间编译结果obj,不存放exe和dll之类的东西)。
  1. 新建的VC++项目,默认输出目录为$(SolutionDir)\$(ConfigurationName),所以在调试时会在解决方案文件夹下建立一个Debug(ConfigurationName的值为Debug)文件夹,并在此文件夹下生成ssyy.lik链接器和ssyy.exe文件。默认中间目录为$(ConfigurationName),所以会在ssyy项目文件夹下建立一个Debug文件夹,并在该文件夹下生成ssyy.obj二进制文件。
    图片

  2. 默认输出文件为$(OutDir)\$(ProjectName).exe,其中$(OutDir)由输出目录赋值。
    图片

  3. $(TargetDir)和$(TargetPath)是生成exe文件之后自动赋予exe文件所在的文件目录和文件地址。
    图片

    输出目录的属性只起到对$(OutDir)赋值的作用,与生成的.exe文件存放的位置没有任何关系,这个位置仅由输出文件决定。如果两者不一样,则中间生成的链接器用的xx.ilk和xx.pdb文件等在输出目录,而最终生成的xx.exe文件位置由输出文件决定。

  4. 工作目录默认为空,即表示为ssyy.vcproj所在目录,它是程序运行后唯一识别的目录,例如程序运行过程中生成一个txt文件,若未指定路径,只指定文件名,那这个文本默认就会建立在工作目录中,当然读取一些配置文件也在工作目录中查找。需要注意,生成的exe文件与工作目录没有任何关系,也不会放在工作目录(通常放在解决方案目录Debug文件夹里)。
    图片
    vs的工作目录是给调试用的,调试开始后,启动对应的exe文件。如果直接双击exe程序,则其工作目录被设置为exe文件所在的目录,这是和vs启动调试不同的地方,如果不把工作目录中的东西拷到exe所在的目录,就会运行出错。

  5. 命令属性项表示:调试器要启动的exe文件的全名,默认为$(TargetPath)
    图片
  6. 附加依赖项设置程序链接时使用的静态库,相当于链接已经编译好了的“代码”,由此我们可以认为这些库相当于我们自己写的.cpp文件,只不过这些库是编译好了的.cpp而已(这里只需要库名称,搜索路径另外设置)
    库名称
    图片
    搜索地址
    图片
    附加依赖项的设置相当于如下代码#pragma comment(lib, "xx.lib"),如果使用相对路径则如下#pragma comment(lib, "..\\debug\\xx.lib"),使用双斜杠,因为它是由程序解释的双引号包括的字符串,需要转义,而#include "..\debug\xx.h"并不是由程序解释的字符串,不用转义
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值