cv::imread() 会导致内存损坏
cv::imread() causes memory corruption
我在Qt Creator中创建了一个OpenCV项目。这个非常简单的代码导致内存损坏:
std::string fileName = "c:\Workspace\ImageProcessing\Tutorials\src\images\test.jpg";
cv::Mat mat = cv::imread(fileName.c_str());
执行代码后,cv::Mat
为空,文件名的内容也充满了垃圾。我读了 imread 在 Opencv 中不起作用,并且在使用发布库时,OpenCV imread(文件名)在调试模式下失败。
我签入了自己的项目,但我没有混合调试和发布库。还有内存损坏。
事实证明,我在Qt Creator项目中使用了MSVC9(VS2008)编译器,但使用的是使用MSVC10(VS2010)编译的OpenCV。
由于C++接口在编译器版本中不稳定,因此导致内存损坏。问题是这完全无声地失败,没有任何警告,并且它通过内存损坏而爆炸。
下载使用VS2010构建的Qt版本后,它现在可以工作了。
相关文章:
- 如何针对特定情况调试和修复此双自由内存损坏问题
- 正在调试 malloc():新内存损坏
- 仅特定内核计数上的 MPI 内存损坏
- C++程序错误:malloc():内存损坏
- 调用std::函数成员时内存损坏
- C++ 内存损坏检测
- 由于标头中的 #define 不匹配而导致内存损坏
- C STD ::线程中的种族状况或内存损坏
- malloc()内存损坏仅通过为特定数量编写int数组
- 字符串标记化期间的内存损坏
- 从检测到 glibc 正常退出 - malloc():内存损坏
- 放置在外部 DLL 中的类中的字符串数据的内存损坏
- std :: string ::擦除会导致内存损坏
- 编译器如何检测内存损坏
- mix_playMusic导致内存损坏
- 在使用新操作员和C 中的结构的调用构造函数时,获得内存损坏(Malloc)
- 两个内联程序集调用与一个内联程序集调用中的内存损坏?
- 如何调试不确定内存损坏?
- 增强Dijkstra代码会导致片段内存损坏
- 内存损坏从vb.net调用c dll