OpenCV在VS中永久配置
分割线前是我发现在单个VS项目中配置OpenCV不能永久有效的经过,不想看的直接跳到分割线之后。
刚学OpenCV的同学可能遇到过我明明上一个工程配置了OpenCV,为什么这个工程中OpenCV引用就出错了!我也遇到这个问题了(所以是真的小白啊)。
本着“天天学习,好好向上”的原则,本白今天开开心心的继续学习OpenCV,恩,今天先学习播放avi视频,明天学习视频算法,后天可以人脸识别了!恩,理想是丰满的,现实是骨干的。
本白在VS中新建了一个c++工程文件,引用了头文件highgui.h,写了几句代码,然后就报!错!了!像这样:
根据多年在错误中摸爬滚打滚出来的经验,小白我下意识就反应过来OpenCV的lib文件没有引用到,配置应该出问题了。
于是,我就照着昨天的教程检查了下新建的这个工程的配置属性,果不其然,include目录、依赖lib都没有了,呵呵呵呵呵,想笑来掩饰掉下来的泪。
本白照着昨天自己写的教程重新配置了下,然后include
我就想啊,是不是每次新建工程OpenCV都不能自动集成进来呢?然后就又新建了一个项目,检查了下,果然是这样,lib没有集成进来。想想也是,为单个工程配置的OpenCV怎么能用到所有的VS项目呢,否则对于不需要用到OpenCV的项目,会多增加多少冗余的开销负担。
我除了是个白,还是个懒人,想找个一劳永逸的方法不用每次都重新配置。
果然我犯的错误,早有前辈遇到过。前人既然栽好树,后人必须好乘凉啊~解决永久配置OpenCV的两种方法就是(敲黑板!重点)配置 Microsoft.Cpp.x64.user 和 配置项目属性表,二者选其一即可。
=====================分割线:以下是配置Microsoft.Cpp.x64.user的具体方法步骤===========================
如果在VS界面上没有找到“属性管理器”窗口的同学们,请点击左上角菜单栏中的视图->其他窗口->属性管理器。
1. 选中图中所示,双击
2. 还是一样的熟悉界面,照着前一篇(小白从0学图像1--OpenCV+visual Studio 环境搭建)的方法配一遍,这里就不多赘述啦~
3. 解决方案换成x64(每次都要换,这着实有些烦人),跑一下~
4. 新建个Demo4,什么都不做,这些配置依然存在
5. 测试代码跑一下~
==============================分割线:以下是配置项目属性表的具体方法步骤=========================
配置项目属性表就是像为单个项目配置OpenCV那样配置(建立)这个项目属性表,每次写OpenCV项目时都引用这个属性表,就不用每次都重新配一遍了~
当前的项目是PlayAviVideo。
1. 添加项目属性表
如果在VS界面上没有找到“属性管理器”窗口的同学们,请点击左上角菜单栏中的视图->其他窗口->属性管理器。
在属性管理器下右击项目名称下的Debug|x64,选择添加新项目属性表(Debug版本是我们平时调试的版本,Release版本是正式发布时的版本)
为属性表重新命名一下,我这里命名为OpenCV_Debug.props
点击“添加”,属性管理器的Debug|W32目录下就会多出刚刚添加的属性表,顺便提一下,这个属性表的位置是“..\项目名\项目名\OpenCV_Debug.props”,这个工程里就是“.. \PlayAviVideo\PlayAviVideo\OpenCV_Debug.props”,留个印象,后面要用~
2. 配置属性表
双击刚刚新建的属性表
3. 点开后会发现似曾相识的界面,是的,再按照单项目配置OpenCV的方法将“包含目录”,“库目录”和链接器中的依赖项配置一遍
4. 写个代码测试一下,头文件没问题,IplImage类也能自动提示。
5. 现在测试一下在新建的工程中引用配置好的OpenCV_Debug配置文件能不能成功。创建一个新的工程Demo2,右击属性管理器中Debug|x64,选择“添加现有属性表”(不是第一个!),添加之前创建的配置文件。
6. 之前让大家留个印象的OpenCV_Debug.props的路径还记得吗?不记得回去翻~按照路径找到OpenCV_Debug.props,选中!
然后就可以看见在Demo2的Debug|x64下面也有OpenCV_Debug配置文件啦~
7. 实践是检验真理的唯一标准,把昨天运行成功的代码拿过来测试下~
还是相同的代码,相同的青春,相同的找不到我在哪里~
Tips:
有的同学可能遇到过这种情况,我明明都是一样做的啊!怎么不行?!像这样:
小白我也遇到过。给出办法!找到“配置管理器”,
是不是解决方案平台从x64变成了x86?!或者变成了别的,总之不是原来那个了!既然找到原因了,改回去就好啦~
小白终于要去播放一个avi程序了,播完码第三篇~~
从0开始学图像,所以必定会有说的错误或不准确之处,还请各位前辈高手多多指正,带本白飞~
参考:(侵权删)
http://blog.csdn.net/tercel_zhang/article/details/42041447
http://www.zhihu.com/question/24400428#answer-30748000