visual studio多工程项目管理

前言

最近在用visual studio的时候,遇到了不少问题,因为练习opengl,每次新建一个项目,需要加一堆配置。之前偷懒,只保持一个解决方案和一个项目,每次不同内容时就把源文件删掉,重新替换新的代码文件。这确实也没问题,但是当练习的代码越来越多,文件越来越多,就混乱了。索性统一配置统一管理。
这里主要介绍在一个解决方案下,多项目的管理。包括整个解决方案的配置,各个工程之间关联,目录管理。不仅适合需要不断新建工程,工程之间又有很多共同要用的库、文件等,也适用于大型项目的开发。


一、工程结构布局

工程结构包括vs中解决方案资源管理器中的结构和本地文件夹的结构

1.资源管理器中的结构布局

第一种结构布局如下图,
图1 默认目录结构

这是vs默认的结构,适用于学习时,分知识块,或分章节练习。

一个解决方案,解决方案下包括所有的项目,项目下包括源文件和资源文件。

注意: 这种目录结构下,通过命名规则来区分 普通的工程项目 和 库项目,工程项目根据先后顺序或者章节顺序等,遵循大小驼峰命名,库项目全部用大写命名。

第二种资源管理器中结构布局如下图,
在这里插入图片描述
这种结构更适用于项目的开发,尤其是大型项目。

在解决方案中新建解决方案文件夹,根据功能模块划分,每个文件下放在该功能模块相关的所有工程。这样不同的人可以独立开发各自的模块。

这种解决方案文件夹,是vs种配置才有的,不会在本地新建对应的文件夹。

建立方式为:鼠标右击解决方案 -------> 添加 --------> 新建解决方案文件夹。

2.本地文件夹结构布局

本地文件夹需要:

  1. 可执行文件输出目录
  2. 中间文件的输出目录
  3. 库文件的输出目录

结构如图:
在这里插入图片描述

实际文件夹如图:(注意确实没有解决方案文件夹)
在这里插入图片描述
这只是一种参考的文件夹目录结构,完全可以根据自己的实际需要设置,比如在output下根据输出平台分Linux、window。

这些文件夹并不需要我们手动一个一个建立,只需要配置项目种对应设置,即可自动生成
下面来着手项目的配置。


二.工程项目配置

基于前面的布局,工程配置需要配置输出目录、包含目录、库目录以及动态链接库

  1. 输出目录
    在这里插入图片描述
    $(solution)代表的是当前解决方案的目录,我们在该目录下新建Output,
    $(Configuration)即配置目录:Debug、Release等
    $(ProjectName)即项目名
    这样就建立了输出文件目录

  2. 包含目录、库目录
    将所有的include的头文件和lib库文件都放在新建的library文件夹中,因此需要指定项目到该文件夹中去取文件
    这样我们在敲代码的时候才能直接#include自己的公用头文件
    在这里插入图片描述

  3. 链接库
    最后将一些额外用到的库放在附加依赖项中
    在这里插入图片描述

三、库项目配置

库项目的指定和工程项目基本一致
在这里插入图片描述
在这里插入图片描述

四、解决方案配置

解决方案的配置用于把各个项目之间联系起来,工程项目需要依赖库项目

首先指定启动项目
对于有多个工程项目时,如depthTest、modelLoad,指定这次运行需要的为启动项目即可
在这里插入图片描述
其次,指定各个项目之间的依赖关系
在这里插入图片描述如,depthTest依赖于GLAD库项目和STB_IMAGE库项目

最后,指定配置属性和平台。这里一般保持所有的一致,所有的都参与生成
在这里插入图片描述


总结

实际项目中还会有一些更细节的配置,但是一般不都是遇到问题再配置吗?谁一来能全部考虑清楚呢?
在这里插入图片描述
其实,更细节的配置、依赖关系会通过些makefile文件来指定,尤其是需要跨平台的项目。当然,这与项目中的配置也不冲突。

目前这些已经完全够一般的开发了。

我们初次配置时,可能觉得太麻烦,我之前就是这么想的。后来发现,花一点时间一次性配置好,后面节省的时间远远超过遇到各种麻烦时耗费的时间。当你重复的去配置库、重复的翻之前的项目配置、甚至重复的复制文件的时候,也许就有所体会了。
在这里插入图片描述

原创声明:转载请注明出处,且必须包含该文链接

  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值