vs 中opencv vector析构问题
来源:互联网 发布:网页注入js代码 编辑:程序博客网 时间:2024/06/06 06:55
来源:
[VS+OpenCV] 程序运行过程正常,当跳出函数是出现断言错误
vs2013 opencv vector析构时出错
具体内容:
自己来回答了,原因其实很简单,却容易想不到。
出错的根本原因是dll分配的heap和主程序的不一致,在我准备重新编译opencv时突然想到,在环境变量path中是有设置opencv dll的地址,我用vs2010没有问题,vs2013却有问题,检查环境变量,果然,opencv\build\x86\vc10,把vc10改成vc12,注销,在登陆就没有问题了。
其实原因还是我先用的vs10编程,后来换成vs13了,在solution改配置文件都是记得的,但是就是忘了path中dll的设置了。
原因分析
单步跟踪调试发现,在函数结束时会进行vector的析构,出现了析构错误。并且,如果vector在定义完成之后,进行resize或reserve操作,将vector空间做大,问题消失。后来查阅资料,结合亲身测试,发现是在调用Opencv 库时,由于opencv库编译使用的是 VC12(或者VC10/VC11)编译的,而本人使用的VS2015使用的时VC14(14是内部编码),不同版本的编译器造成析构方法冲突。
解决方法使用VC12版本的库,需要使用VC12的编译器即可,如VS2012、VS2013
使用VC14编译器时,截至目前,Opencv官网的2.4.*系列版本的库只有VC10/VC11/VC12编译的版本,只有OpenCV3.0之后的版本含有VC14编译的版本。因而本人又重新将opencv使用VS2015进行编译,设置好参数后,问题解决。
- vs 中opencv vector析构问题
- Opencv中vector<Mat>数据存储问题
- vs+opencv中findcontours崩溃的问题
- vs配置opencv问题
- VS+openCV编译问题
- 关于VS 中添加OpenCV 使用配置问题(版本号原因)
- vs+opencv 使用过程中所遇问题记录 day1
- vs+opencv 使用过程中所遇问题记录 day2
- vs+opencv 使用过程中所遇问题记录 day3
- vector 析构问题
- OpenCV安装VS版本问题
- 在VS中配置OpenCV
- vector中指针问题
- c++中vector问题
- vector中size问题
- 关于opencv中Vector内存释放或者元素清空的问题
- anroid opencv jni &vector 头文件问题
- 如何解决vector 析构异常 opencv Assert _CrtIsValidHeapPointer
- java实现24点算法
- Matplotlib 作图中文无法显示
- linux下搭建python环境
- Oracle表空间的创建与监控(持续更新)
- 软件系统性能优化策略--SQL优化
- vs 中opencv vector析构问题
- 关于event.keyCode值用String.fromCharCode转换后,小数点变成了奇怪的字符!!
- linux下的shell 快捷键
- mvn package方法打包注入依赖解决方法
- 第八届蓝桥杯【省赛试题10】k倍区间
- Linux下 zookeeper 安装与配置
- 正则去除包裹的大括号
- 3D图片轮播
- 中南大学第十一届大学生程序设计竞赛-COJ1904-精灵的交际网