visual studio多工程项目管理

  • 前言
  • 一、工程结构布局
    • 1.资源管理器中的结构布局
    • 2.本地文件夹结构布局
  • 二.工程项目配置
  • 三、库项目配置
  • 四、解决方案配置
  • 总结

前言

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


一、工程结构布局

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

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文件来指定,尤其是需要跨平台的项目。当然,这与项目中的配置也不冲突。

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

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

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

visual studio多工程项目管理相关推荐

  1. Visual Studio 2010工程目录下的ipch文件夹和.sdf文件

    使用VS2010建立C++解决方案时,会生成SolutionName.sdf和一个叫做ipch的文件夹,这两个文件再加上*.pch等文件使得工程变得非常的庞大,一个简单的程序都会占用几十M的硬盘容量, ...

  2. Visual Studio VS工程文件作用的.sdf(.db)和ipch文件夹的处理

    sdf 和 ipch文件与VS提供的智能感知.代码恢复.团队本地仓库功能有关,如果不需要,可以禁止,就不会产生sdf 和 ipch这两个文件了,VS重新加载解决方案时速度超快,设置方法如下:(智能感知 ...

  3. visual studio 2019工程运行时不要弹出cmd黑窗口

    原因:VS工程属性配置问题,[连接器]->[系统]->[子系统]设置成了控制台 解决方案:[连接器]->[系统]->[子系统]修改为窗口

  4. 在Visual Studio 2012中使用VMSDK开发领域特定语言(一)

    前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modeling SDK进行领域特定语言(DSL)的开发,包括两个部分的内容.在第一部分中,将对 ...

  5. 从Visual Studio里抓取抽象语法树(AST)

    前几天测试一个代码生成的软件,测试目的是将软件生成的C#或者VB.NET源代码文件,和之前的基准C#或者VB.NET源代码文件进行对比.如果实际生成的文件和基准文件有不一致的地方,就说明,软件有潜在的 ...

  6. 将cocos2dx项目从Visual Studio 迁移到 xcode

    因为Visual Studio和XCode的巨大差异性,一开始选择任何一个IDE,都会有一个迁移的过程,XCode的迁移到Visual Studio相对非常简单,不用再介绍.将项目从Visual St ...

  7. PaddleOCR——Visual Studio 2019 环境下C++推理部署 CMake 编译解决方案

    PaddleOCR--Visual Studio 2019 环境下C++推理部署 CMake 编译解决方案 官方文档 环境配置 Step1: 下载PaddlePaddle C++ 预测库 paddle ...

  8. 介绍一个功能强大的 Visual Studio Code 扩展 - Rest Client,能部分替代 Postman

    笔者平日用 Visual Studio Code 进行全栈开发,有的时候需要用 Postman 进行 API 测试.最近发现了一个好用的 Visual Studio Code 扩展:Rest Clie ...

  9. 为什么转换到Visual Studio 2017如此 “容易”

    与VS 2015相比,Visual Studio 2017在C ++功能方面有重大的飞跃.我们希望升级到新版本后能让您的日常工作变得更轻松. 这篇文章主要介绍从Visual Studio 2015升级 ...

  10. Visual Studio属性配置中使用宏

    在学习C语言的时候,我们曾经遇到过一个宏的概念.宏的作用机理本质上是宏的展开,C语言中的宏的用法也有很多种(水其实很深...),不过从感觉上来讲,人们大致上会在以下的场景中,利用宏来解决一些窘境:一是 ...

最新文章

  1. iOS抓取日志方式(1)
  2. java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...
  3. 开源库 Natasha2016 ,让IL编程跑起来
  4. Java类集-list
  5. To B生意的私域流量,你应该知道的10件事儿
  6. 大数据基础篇(一):联机分析处理(OLAP) 与 联机事务处理(OLTP)
  7. python 3.7.732位安装步骤_Python3.7安装pyaudio教程解析
  8. 笨方法“学习python笔记之列表
  9. 常见的Activity Action Intent常量
  10. Linux下使用GDB进行调试
  11. python学习day13 day14 迭代器 生成器
  12. 二维 三维 向量vector 定义,初始化
  13. 2022年2月份谷哥学术资源分下下载列表:19/20
  14. 【TypeScript系列教程13】String 字符串对象的基本使用
  15. Retrofit 2.9.0 源码解析
  16. 什么是锐度sharpness
  17. 《软件设计与实现》 --- 读书笔记
  18. java+上传整个文件夹的所有文件
  19. 腾讯企鹅辅导 H5 性能极致优化
  20. 小米口碑营销案例的十大秘诀

热门文章

  1. R语言 rgl plot3d函数
  2. 2020校招Java笔试题
  3. 新会计准则 计算机管理系统,用友ERP供应链管理系统实验教程(新会计准则版)pdf...
  4. BackTrack5(BT5)硬盘安装完美教程
  5. LateX安装下载使用详细教程
  6. Visio如何绘制数据流图
  7. python与审计底稿关系_干货!审计底稿,六大禁忌
  8. excel教程自学网_企业Office办公软件自学视频教程word/excel/ppt 2003 2013 2016全套
  9. 为什么我的世界服务器显示红叉,我的世界藏宝图怎么看红叉
  10. 力扣(leetcode)67. 二进制求和——c语言新手入门