调用了opencv的C++程序调试运行没有问题,但一运行exe就报错debug error R6010

问题描述:最近做项目的时候,发现调用了opencv库的C++程序在VS2010上调试运行完全没有问题,但是一旦运行debug文件下的exe文件就显示debug error,具体报错如图:

调用了opencv的C++程序调试运行没有问题,但一运行exe就报错debug error R6010_第1张图片

虽然在调用opencv库的时候也遇到过这种问题,但是基本都是参数错误,指针问题,但是这次明明debug调试的时候完全没有问题,但是运行exe就出错了,

一直百思不得其解,后面在运行另外一个小程序的时候突然跳出了一个一样的bug,我才突然发现,居然是因为路径的问题!

我的项目程序需要加载一个模型文件,但是我的路径上一开始设的是相对路径,即直接放在工程目录下的。

在调试的时候我明明看到文件被加载了进来,所以也就没考虑过文件加载的问题。

后面通过逐一注释排除才发现居然是因为没把路径设成绝对路径,导致opencv函数在读取文件的时候找不到文件,读取进来的模型是空的。

然后我又把空的模型用于预测,于是就报了debug error的错。

之后把文件路径改成绝对路径就没有问题了。

所以,以后写程序的时候还是尽量多用绝对路径,不然真出错的时候连问题在哪都找不到!

这里顺便总结一下常见的opencv出这种错误的原因:

1.指针问题,指针越界,内存泄露之类的。

2.参数问题,很多时候opencv函数调用不准确,参数和函数不匹配。

3.路径问题,如果有读取文件之类的话这种得重点注意。

你可能感兴趣的:(C++,opencv)