本文主要解决如下问题:
Opencv Error Insufficient memory错误解决方案
x86架构切换到x64的方法
应用程序无法正常启动0xc000007b解决方案
由于本人比较懒,恰好又都是同一天遇到的问题,所以就在一篇文章里面说了,不要学我哈,好了,言归正传
最近在做一个识别CAD图纸并且画出的项目时,出现内存不足问题,即Opencv Error:Insufficient memory.in cv::out of memory error,导致系统崩溃。
在网上查了一下,错误的原因可能是VS2012项目的x86架构下的内存太小,无法加载更多数据。当然,也可能是出现内存泄漏导致内存一直飙升,以及栈溢出等等都可能导致该类错误的出现,对待该类问题需要具体情况具体分析。我的解决办法就是将项目切换到x64架构上.这里说一下切换的步骤以及会出现的问题:
1.修改系统环境变量
这里我把x86架构以及x64架构的路径都加上了:
%SystemRoot%system32;
%SystemRoot%;%SystemRoot%System32Wbem;
%SYSTEMROOT%System32WindowsPowerShellv1.0;
C:WindowsSysWOW64;%OPENCV%、
2.切换x64架构
.
如果没有x64选项,则:
(1)选择其下面的配置管理器,
(2)在配置管理窗口,点击箭头所指的“新建”,弹出新建窗口
(3)在“新建解决方案平台”窗口,选择“x64”,然后点击“确定”
3.在项目——属性中更改VC++目录中的库目录,将原来的x86架构下的库目录改为x64架构下的库目录。
4.在同属性页下将链接器——高级——目标计算机更改为:MachineX64 (/MACHINE:X64)
5. 若和QT一起工作的,需要在QT5——> Qt Projecte Settings中的最后一个version选择上qt版本。
注意:在这里已经基本切换完了,如果没有问题恭喜你,但是,如果经过上述修改之后若是如下问题:应用程序无法正常启动0xc000007b ,则可能是缺少相关的 dll文件。
解决方案:找到opencv中x64里面的bin文件夹,将里面的dll文件复制到x64架构对应的systerm32文件夹中(x86对应的是SysWOW64文件夹)。
搞定!可能不一定适合所有人。