visual studio多工程项目管理
visual studio多工程项目管理
- 前言
- 一、工程结构布局
- 1.资源管理器中的结构布局
- 2.本地文件夹结构布局
- 二.工程项目配置
- 三、库项目配置
- 四、解决方案配置
- 总结
前言
最近在用visual studio的时候,遇到了不少问题,因为练习opengl,每次新建一个项目,需要加一堆配置。之前偷懒,只保持一个解决方案和一个项目,每次不同内容时就把源文件删掉,重新替换新的代码文件。这确实也没问题,但是当练习的代码越来越多,文件越来越多,就混乱了。索性统一配置统一管理。
这里主要介绍在一个解决方案下,多项目的管理。包括整个解决方案的配置,各个工程之间关联,目录管理。不仅适合需要不断新建工程,工程之间又有很多共同要用的库、文件等,也适用于大型项目的开发。
一、工程结构布局
工程结构包括vs中解决方案资源管理器中的结构和本地文件夹的结构
1.资源管理器中的结构布局
第一种结构布局如下图,
这是vs默认的结构,适用于学习时,分知识块,或分章节练习。
一个解决方案,解决方案下包括所有的项目,项目下包括源文件和资源文件。
注意: 这种目录结构下,通过命名规则来区分 普通的工程项目 和 库项目,工程项目根据先后顺序或者章节顺序等,遵循大小驼峰命名,库项目全部用大写命名。
第二种资源管理器中结构布局如下图,
这种结构更适用于项目的开发,尤其是大型项目。
在解决方案中新建解决方案文件夹,根据功能模块划分,每个文件下放在该功能模块相关的所有工程。这样不同的人可以独立开发各自的模块。
这种解决方案文件夹,是vs种配置才有的,不会在本地新建对应的文件夹。
建立方式为:鼠标右击解决方案 -------> 添加 --------> 新建解决方案文件夹。
2.本地文件夹结构布局
本地文件夹需要:
- 可执行文件输出目录
- 中间文件的输出目录
- 库文件的输出目录
结构如图:
实际文件夹如图:(注意确实没有解决方案文件夹)
这只是一种参考的文件夹目录结构,完全可以根据自己的实际需要设置,比如在output下根据输出平台分Linux、window。
这些文件夹并不需要我们手动一个一个建立,只需要配置项目种对应设置,即可自动生成。
下面来着手项目的配置。
二.工程项目配置
基于前面的布局,工程配置需要配置输出目录、包含目录、库目录以及动态链接库
输出目录
$(solution)代表的是当前解决方案的目录,我们在该目录下新建Output,
$(Configuration)即配置目录:Debug、Release等
$(ProjectName)即项目名
这样就建立了输出文件目录包含目录、库目录
将所有的include的头文件和lib库文件都放在新建的library文件夹中,因此需要指定项目到该文件夹中去取文件
这样我们在敲代码的时候才能直接#include自己的公用头文件
链接库
最后将一些额外用到的库放在附加依赖项中
三、库项目配置
库项目的指定和工程项目基本一致
四、解决方案配置
解决方案的配置用于把各个项目之间联系起来,工程项目需要依赖库项目
首先指定启动项目
对于有多个工程项目时,如depthTest、modelLoad,指定这次运行需要的为启动项目即可
其次,指定各个项目之间的依赖关系
如,depthTest依赖于GLAD库项目和STB_IMAGE库项目
最后,指定配置属性和平台。这里一般保持所有的一致,所有的都参与生成
总结
实际项目中还会有一些更细节的配置,但是一般不都是遇到问题再配置吗?谁一来能全部考虑清楚呢?
其实,更细节的配置、依赖关系会通过些makefile文件来指定,尤其是需要跨平台的项目。当然,这与项目中的配置也不冲突。
目前这些已经完全够一般的开发了。
我们初次配置时,可能觉得太麻烦,我之前就是这么想的。后来发现,花一点时间一次性配置好,后面节省的时间远远超过遇到各种麻烦时耗费的时间。当你重复的去配置库、重复的翻之前的项目配置、甚至重复的复制文件的时候,也许就有所体会了。
原创声明:转载请注明出处,且必须包含该文链接
visual studio多工程项目管理相关推荐
- Visual Studio 2010工程目录下的ipch文件夹和.sdf文件
使用VS2010建立C++解决方案时,会生成SolutionName.sdf和一个叫做ipch的文件夹,这两个文件再加上*.pch等文件使得工程变得非常的庞大,一个简单的程序都会占用几十M的硬盘容量, ...
- Visual Studio VS工程文件作用的.sdf(.db)和ipch文件夹的处理
sdf 和 ipch文件与VS提供的智能感知.代码恢复.团队本地仓库功能有关,如果不需要,可以禁止,就不会产生sdf 和 ipch这两个文件了,VS重新加载解决方案时速度超快,设置方法如下:(智能感知 ...
- visual studio 2019工程运行时不要弹出cmd黑窗口
原因:VS工程属性配置问题,[连接器]->[系统]->[子系统]设置成了控制台 解决方案:[连接器]->[系统]->[子系统]修改为窗口
- 在Visual Studio 2012中使用VMSDK开发领域特定语言(一)
前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modeling SDK进行领域特定语言(DSL)的开发,包括两个部分的内容.在第一部分中,将对 ...
- 从Visual Studio里抓取抽象语法树(AST)
前几天测试一个代码生成的软件,测试目的是将软件生成的C#或者VB.NET源代码文件,和之前的基准C#或者VB.NET源代码文件进行对比.如果实际生成的文件和基准文件有不一致的地方,就说明,软件有潜在的 ...
- 将cocos2dx项目从Visual Studio 迁移到 xcode
因为Visual Studio和XCode的巨大差异性,一开始选择任何一个IDE,都会有一个迁移的过程,XCode的迁移到Visual Studio相对非常简单,不用再介绍.将项目从Visual St ...
- PaddleOCR——Visual Studio 2019 环境下C++推理部署 CMake 编译解决方案
PaddleOCR--Visual Studio 2019 环境下C++推理部署 CMake 编译解决方案 官方文档 环境配置 Step1: 下载PaddlePaddle C++ 预测库 paddle ...
- 介绍一个功能强大的 Visual Studio Code 扩展 - Rest Client,能部分替代 Postman
笔者平日用 Visual Studio Code 进行全栈开发,有的时候需要用 Postman 进行 API 测试.最近发现了一个好用的 Visual Studio Code 扩展:Rest Clie ...
- 为什么转换到Visual Studio 2017如此 “容易”
与VS 2015相比,Visual Studio 2017在C ++功能方面有重大的飞跃.我们希望升级到新版本后能让您的日常工作变得更轻松. 这篇文章主要介绍从Visual Studio 2015升级 ...
- Visual Studio属性配置中使用宏
在学习C语言的时候,我们曾经遇到过一个宏的概念.宏的作用机理本质上是宏的展开,C语言中的宏的用法也有很多种(水其实很深...),不过从感觉上来讲,人们大致上会在以下的场景中,利用宏来解决一些窘境:一是 ...
最新文章
- iOS抓取日志方式(1)
- java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...
- 开源库 Natasha2016 ,让IL编程跑起来
- Java类集-list
- To B生意的私域流量,你应该知道的10件事儿
- 大数据基础篇(一):联机分析处理(OLAP) 与 联机事务处理(OLTP)
- python 3.7.732位安装步骤_Python3.7安装pyaudio教程解析
- 笨方法“学习python笔记之列表
- 常见的Activity Action Intent常量
- Linux下使用GDB进行调试
- python学习day13 day14 迭代器 生成器
- 二维 三维 向量vector 定义,初始化
- 2022年2月份谷哥学术资源分下下载列表:19/20
- 【TypeScript系列教程13】String 字符串对象的基本使用
- Retrofit 2.9.0 源码解析
- 什么是锐度sharpness
- 《软件设计与实现》 --- 读书笔记
- java+上传整个文件夹的所有文件
- 腾讯企鹅辅导 H5 性能极致优化
- 小米口碑营销案例的十大秘诀
热门文章
- R语言 rgl plot3d函数
- 2020校招Java笔试题
- 新会计准则 计算机管理系统,用友ERP供应链管理系统实验教程(新会计准则版)pdf...
- BackTrack5(BT5)硬盘安装完美教程
- LateX安装下载使用详细教程
- Visio如何绘制数据流图
- python与审计底稿关系_干货!审计底稿,六大禁忌
- excel教程自学网_企业Office办公软件自学视频教程word/excel/ppt 2003 2013 2016全套
- 为什么我的世界服务器显示红叉,我的世界藏宝图怎么看红叉
- 力扣(leetcode)67. 二进制求和——c语言新手入门