众所周知,为VS项目配置OpenCV各种路径十分繁琐,同时,VS内一个项目中只能允许出现一个main函数,如果我们编写许多小程序,就要新建许多项目或者把不同项目写在不同函数里,十分不优雅。
本教程讨论如何在一个解决方案内优雅配置多个OpenCV项目
什么是解决方案
解决方案是VS内比项目更高一级的组织结构,后缀是“.sln”
我们在解决方案管理器(可以在菜单栏视图——解决方案管理器打开)中可以看到这样的组织结构:
我们可以在一个解决方案右键下新建多个项目
注意新建项目时选择路径,一般项目的根目录并排放在同一个解决方案文件夹内。
每个项目内只能有一个main函数,也就是每个项目是一个独立的小程序。
如何在不同项目之间共享属性
我们知道OpenCV库在VS中的调用前需要配置属性,也就是配置一些路径。
常见的属性的配置是“项目”一级的,当我们编写多个小程序、多个项目的同时就要多次配置,十分不便,在这里可以使用“项目属性表”大大简化操作。
首先打开VS中的属性管理器(菜单栏视图——其他窗口——属性管理器)
每个项目下有若干个“文件夹”,这些都是项目的“配置”,我们在运行时可以切换配置。我们修改了哪些配置下的属性,在运行时也要勾选这个配置。
新建项目属性表
那么如何在不同的项目下共享配置呢,这里就要借助“项目属性表”。
我们在Debug这条配置处右键——添加新项目属性表,选择一个路劲和名称。就出现一个类似“PropertySheet”的配置表文件。
双击属性表可以对其进行设置,其实就是重复之前OpenCV的配置,但这是我们最后一次重复配置了。
对OpenCV而言,主要修改
- 通用属性——VC++目录——包含目录
- 通用属性——VC++目录——库目录
- 链接器——输入——附加依赖项(要注意这里debug和release版本的项不同,所以说我们其实需要两个项目属性表,分别给debug和release模式用)
具体怎么修改就去看OpenCV配置教程吧
应用项目属性表
在属性管理器的另一个项目,找到debug处,右键,添加现有项目属性表,选择之前我们创建的项目属性表文件,确认。