opencv检错:程序运行过程正常,当跳出函数时出现断言错误(Debug Assertion Failed)
转载http://blog.csdn.net/u012327581/article/details/51351780
1.问题描述
在VS2015下配置好Opencv后,程序在函数运行过程中正常,调试时发现,当运行至跳出函数时,出现断言错误。

2.原因分析
单步跟踪调试发现,在函数结束时会进行vector的析构,出现了析构错误。并且,如果vector在定义完成之后,进行resize或reserve操作,将vector空间做大,问题消失。后来查阅资料,结合亲身测试,发现是在调用Opencv 库时,由于opencv库编译使用的是 VC12(或者VC10/VC11)编译的,而本人使用的VS2015使用的时VC14(14是内部编码),不同版本的编译器造成析构方法冲突。
3.解决方法
使用VC12版本的库,需要使用VC12的编译器即可,如VS2012、VS2013 
使用VC14编译器时,截至目前,Opencv官网的2.4.*系列版本的库只有VC10/VC11/VC12编译的版本,只有OpenCV3.0之后的版本含有VC14编译的版本。因而本人又重新将opencv使用VS2015进行编译,设置好参数后,问题解决。
卸载vs2015,装上VS2012之后,运行某些vector不会报错了,但是并非所有的vector都能正常运行(这个真的很坑人),重新出现的断言错误如下


此处省略,详情查看下面的链接……
详细链接 http://blog.csdn.net/jianjian1992/article/details/49247003

上面的3楼,针对部分vector有用(占空间不那么大的程序),如果是针对视频的处理,最终还是会失败(治标不治本)。
使用1楼的方法,将依赖库进行修改(改成没有d的情况,末尾有d是debug模式,没有d才是release模式)

改成release模式后虽然能用,但始终没有明白原因,o(╯□╰)o
opencv检错:程序运行过程正常,当跳出函数时出现断言错误(Debug Assertion Failed)的更多相关文章
- 读书笔记——Windows核心编程(2)禁止C运行时触发的所有Debug Assertion Failed对话框
		1 定义一个函数 void _invalid_parameter( const wchar_t * expression, const wchar_t * function, const wchar_ ... 
- 孙鑫MFC学习笔记3:MFC程序运行过程
		1.MFC中WinMain函数的位置在APPMODUL.cpp APPMODUL.cpp中是_tWinMain,其实_tWinMain是一个宏#define _tWinMain WinMain 2.全 ... 
- DirectShow程序运行过程简析
		这段时间一直在学习陆其明老师的<DirectShow开发指南>一书,书中对DirectShow的很多细节讲解清晰,但是却容易让人缺少对全局的把握.在学习过程中,整理了关于DirectSho ... 
- java 程序运行过程 简介
		这里的Java程序运行过程,是指我们编译好代码之后,在命令行开始执行java xxx命令,到java程序开始执行起来的这一过程,我们称其为运行时. 第一步,操作系统解析我们输入的java xxx命令, ... 
- Java内存管理-程序运行过程(一)
		勿在流沙住高台,出来混迟早要还的. 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 相信在做Java开发的伙伴一定知道 JVM(Java Virtual Machine( ... 
- (转)在.NET程序运行过程中,什么是堆,什么是栈?什么情况下会在堆(栈)上分配数据?它们有性能上的区别吗?“结构”对象可能分配在堆上吗?什么情况下会发生,有什么需要注意的吗?
		转自:http://www.cnblogs.com/xiaoyao2011/archive/2011/09/09/2172427.html 在.NET程序运行过程中,什么是堆,什么是栈? 堆也就是托管 ... 
- 程序运行过程中遇到“ORA-03114: not connected to ORACLE”的问题解决
		c#,winform程序,数据批量入oracle库时用到DataAdaper的.FillSchema函数,如:da.FillSchema(dt2, SchemaType.Mapped); 程序运行一段 ... 
- IOS  程序运行过程
		第一次写有点小紧张 希望大家多多指教! 主要讲讲程序从点击运行到结束这个过程中后面的代码都有哪些变化. 首先先了解一下UIApplication.UIApplication的核心作用是提供IOS运行 ... 
- Java 程序运行过程中的内存分析
		作为 java 程序员,都应该知道 Java 程序运行在 JVM(Java Virtual Machine,Java 虚拟机)上,可以把 JVM 理解成 Java 程序和操作系统之间的桥梁,JVM 实 ... 
随机推荐
- java_爬虫_从腾讯视频播放界面爬取视频真实地址
			由于想在微信公众号里爬一点儿考研的视频 花了差不多一天的时间把这个爬虫做好(其实也不算爬虫吧,就算个能批量处理的地址解析器,半个爬虫) 不多说,进正题 (本文适合有java基础的同学,没基础的用客户端 ... 
- mysql千万级数据量查询出所有重复的记录
			查询重复的字段需要创建索引,多个条件则创建组合索引,各个条件的索引都存在则不必须创建组合索引 有些情况直接使用GROUP BY HAVING则能直接解决:但是有些情况下查询缓慢,则需要使用下面其他的方 ... 
- iOS APP打开其他应用
			1.限于iOS的沙盒机制,一般的app都只在沙盒内操作运行,针对app之间的通讯苹果还是给出了一些解决方案的. 最常见的场景就是在一个APP中打开另一个APP. 核心就是一个API,通过制定一个一个U ... 
- win7系统64位配置Oracle 的ODBC数据源
			1.安装oracle客户端 2.在如下路径启动odbc数据源 3.选择系统DSN-添加,选择oracle驱动 4.填写信息如下,填写数据源名称等信息后输入用户名和密码测试连接 
- Python中的锁
			一.全局解释器锁(GIL) 1.什么是全局解释器锁 在同一个进程中只要有一个线程获取了全局解释器(cpu)的使用权限,那么其他的线程就必须等待该线程的全局解释器(cpu)使用权消失后才能使用全局解释器 ... 
- SQL行转列与列转行(转)
			原文: http://blog.csdn.net/jx_870915876/article/details/52403472 add by zhj: 本文是以MySQL为例说明的,但其实它适用于所有关 ... 
- Mybatis-Plus 3.0代码生成器
			package com.kyplatform.generator; import com.baomidou.mybatisplus.core.exceptions.MybatisPlusExcepti ... 
- 【托业】【全真题库】TEST2-语法题
			105 to do sth 不定时可充当形容词修饰名词 In an effort to reduce prices----为降低价格 106. 修饰比较级:far,much,even,still,a ... 
- opencart分类筛选逻辑修改为并且条件
			opencart分类筛选模式默认是或的逻辑,满足条件1或条件2都展现出来,如果想要改成既满足条件1又满足条件2要怎么改呢?有一个插件可以实现,FixFilter OC2x,可以修改默认的筛选条件 1. ... 
- vscode编译发布exe
			命令1: dotnet build -r win-x64 命令2: dotnet publish -c Release -r win-x64 -r|--runtime:(window rid或者lin ... 
