C++ cv::imread()导致内存损坏

C++ cv::imread()导致内存损坏,c++,qt,opencv,C++,Qt,Opencv,我已经在Qt Creator中创建了一个OpenCV项目。这段非常简单的代码导致内存损坏: std::string fileName = "c:\\Workspace\\ImageProcessing\\Tutorials\\src\\images\\test.jpg"; cv::Mat mat = cv::imread(fileName.c_str()); 执行代码后,cv::Mat为空,文件名的内容也被垃圾填满。我阅读和阅读 我签入了自己的项目,但我没有混合调试库和发布库。还有内存损坏。事

我已经在Qt Creator中创建了一个OpenCV项目。这段非常简单的代码导致内存损坏:

std::string fileName = "c:\\Workspace\\ImageProcessing\\Tutorials\\src\\images\\test.jpg";
cv::Mat mat = cv::imread(fileName.c_str());
执行代码后,
cv::Mat
为空,文件名的内容也被垃圾填满。我阅读和阅读


我签入了自己的项目,但我没有混合调试库和发布库。还有内存损坏。

事实证明,我在Qt Creator项目中使用的是MSVC9(VS2008)编译器,但使用的是使用MSVC10(VS2010)编译的OpenCV

<>由于C++接口在编译器版本中不稳定,因此导致内存损坏。问题是,它完全无声地失败,没有任何警告,并且通过内存损坏而崩溃

下载了用VS2010构建的Qt版本后,它现在可以工作了