VS2019新建项目、解决方案、多项目生成、防止文件污染

VS2019新建项目、解决方案、多项目生成、防止文件污染

0-更新时间

2020.12.16 防止文件污染

之前因为刷题,多多少少用过一点VS2019,但是因为用惯了Jetbrains公司的IDE,所以一直在用Clion。希望通过这一次学习,能够熟练使用VS2019.

1-新建项目

首先就是新建项目,是下面的界面

我们一般会使用空项目控制台应用这两个,空项目是最常用的,里面没有任何源程序。控制台应用通常没有可视化界面,就是单纯的通过字符串来显示或监控程序,里面会自己包含一些示例代码。控制台应用的用户往往只关心数据,不关心界面。

参考:【使用vs编译程序选择新建”空项目“与”win32控制台应用程序“的区别。】

https://blog.csdn.net/u013409439/article/details/45274291

点击空项目后,进入配置项目界面,如下

在这里插入图片描述

一开始不太清楚【解决方案】和【项目】的区别,查阅资料后才知道:在VS中,新建项目时会默认创建同名的解决方案。

项目其实就是程序的容器,这种程序就是编写出来为了实现这个项目的最终目的(比如计算银行利息)。某个项目的所有文件都存储在相应的项目文件夹中,关于**项目的详细信息存储在一个扩展名为.vcproj的xml文件中,该文件同样存储在相应的项目文件夹中。**项目文件夹还包括其它文件夹,它们用来存储编译及链接项目时所产生的输出。

解决方案就是存储与一个或多个项目有关的所有信息的文件夹,这样就有一个或多个项目文件夹是解决方案文件夹的子文件夹。**与解决方案中项目有关的信息存储在扩展名为.sln和.suo的两个文件中。**当创建某个项目时,如果没有选择在现有的解决方案中添加该项目,那么系统将自动创建一个新的解决方案。

参考:visual C++ 项目和解决方案的区别

也就是说,一个项目必然是会在一个解决方案内,一个解决方案内至少包括一个项目

上面图中,【位置】栏里,D:\CodeProject\CppProject这个路径其实是解决方案的路径,如果在上图中点击【创建】按钮,VS2019会在该路径中新建一个Project1的文件夹(解决方案文件夹,默认与创建的项目同名)。在D:\CodeProject\CppProject\Project1的路径下,还有一个Project1文件夹(项目文件夹)。

如果先修改【项目名称】,那么最后一栏的【解决方案名称】也会变化,但是直接修改【解决方案名称】的话,【项目名称】是不会变的。

如果选择【将解决方案和项目放在同一目录下】,那么【解决方案名称】就会变灰。

2-防止文件污染

当创建项目成功后,就会进入IDE,很迷惑上面栏里DebugReleasex64x86是什么东西。

在这里插入图片描述

经过查询以后才知道:

DebugRelease只是两个编译的选项而已,是编译器所要进行工作的一系列指令,它们只是编译指令的集合的名称。

Debug允许对源码进行调试,而Release则不对源码进行调试。Debug和Release,主要是针对其面向的目标不同的而进行区分的。Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发人员提供强大的应用程序调试能力。而Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信 息,同时,它往往进行了各种优化,以期达到代码最小和速度最优,为用户的使用提供便利。

x64x86它们之间最直接的区别就是:x86平台编译出来的exe(可执行文件)或dll(动态链接库)都是32位的。以此类推,x64对应的则是64位的。

参考:VC++中debug跟release编译模式的区别总结

关于VS项目平台的x86,x64,Any CPU以及Debug和Release的区别

根据以上情况,编译模式(DebugRelease)和平台选择(x64x86)相互搭配以后就是4种组合,每一次生成解决方案都会生成两个文件夹,比如当前编译器选择Debugx64,在这种模式下,就会按照默认的输出目录$(SolutionDir)$(Configuration)\ 生成一个Configuration文件夹,其中SolutionDir是当前解决方案的路径,Configuration代表当前的编译模式。在默认中间目录$(Configuration)\ 中保存日志和临时文件。也就是说,会在解放方案文件夹内,以及项目文件夹内,都产生一个Debug文件夹。

那么在查找文件时,就容易弄混哪里是中间文件,哪里是工程文件。

下面,来修改一下输出目录与中间目录的保存路径。

点击【解决方案资源管理器】中的项目,右键选择【属性】,在这里就能修改输出目录与中间目录的保存路径。注意修改的时候,在上面的【配置】与【平台】两栏中一定选择【所有配置】、【所有平台】。这样就不用区分两两搭配的四种情况了。

在这里插入图片描述

【输出目录】修改为:$(SolutionDir)../bin/$(Platform)/$(Configuration),表示在解决方案目录的上一级目录中设置bin文件夹,如果没有该文件夹会自动创建,将输出文件、核心程序(就是exe文件)放到bin目录里,同时按照Platform(x64x86)来新建文件夹,并且在平台文件夹再根据编译模式(DebugRelease)再分别建立文件夹。

【中间目录】修改为:$(SolutionDir)../temp/$(Platform)/$(Configuration)/$(ProjectName),表示在解决方案目录的上一级目录中设置temp文件夹,temp文件夹下按照平台再分,每个平台文件夹下按照编译模式再分文件夹,最后在每个配置文件夹下新建当前项目的独立文件夹。

为什么不在【输出目录】中也设置$(ProjectName)产生独立项目文件夹呢?就是因为,在同一解决方案下不同项目【生成】后,各自项目的输出文件以自己项目名称来命名,易于区分,如下图所示,HelloCpp和HelloWorld都属于同一解决方案。

在这里插入图片描述

3-多项目生成解决方案

当一个解决方案里有多个项目时,就要设置谁作为启动项目了。设置为启动项目的项目会被粗体表示。想要更换启动项目,直接选中另一个项目,右键【设为启动项目】,这样操作以后,再右键【生成】才是自己项目的文件

时,就要设置谁作为启动项目了。设置为启动项目的项目会被粗体表示。想要更换启动项目,直接选中另一个项目,右键【设为启动项目】,这样操作以后,再右键【生成】才是自己项目的文件

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值