C++ 缺少OpenCV-DLL,但它';不是吗?
我正在使用OpenCV尝试一个基本程序,代码如下:C++ 缺少OpenCV-DLL,但它';不是吗?,c++,opencv,C++,Opencv,我正在使用OpenCV尝试一个基本程序,代码如下: #include "cv.h" #include "highgui.h" int main() { IplImage* newImg; newImg = cvLoadImage("~/apple.bmp", 1); cvNamedWindow("Window", 1); cvShowImage("Window", newImg); cvWaitKey(0); cvDestroyWindow("W
#include "cv.h"
#include "highgui.h"
int main()
{
IplImage* newImg;
newImg = cvLoadImage("~/apple.bmp", 1);
cvNamedWindow("Window", 1);
cvShowImage("Window", newImg);
cvWaitKey(0);
cvDestroyWindow("Window");
cvReleaseImage(&newImg);
return 0;
}
当我运行这个时,我会
程序无法启动,因为
您的数据库中缺少libcxcore200.dll
电脑。尝试重新安装
程序来解决此问题
但是,我可以看到这个DLL。它存在。我已将以下内容添加到我的链接器的输入依赖项中
C:\OpenCV2.0\lib\libcv200.dll.a
C:\OpenCV2.0\lib\libcvaux200.dll.a
C:\OpenCV2.0\lib\libcxcore200.dll.a
C:\OpenCV2.0\lib\libhighgui200.dll.a
有什么好处?我正在使用VisualStudio2008
当我链接.dll文件而不是.dll.a文件时,我得到
致命错误LNK1107:无效或损坏
文件:无法在0x3F8处读取
libcv200.dll
只需将
C:\OpenCV2.0\bin
添加到PATH环境变量中即可
或
安装OpenCV时
选择选项,将OpenCV添加到当前用户的系统路径
,这不是默认路径DLL文件末尾的“.a”是一个问题,因为您没有使用CMAKE构建OpenCV 2.0。此外,您没有链接到DLL文件,而是链接到库文件,而且,您没有看到正确的库文件的原因是因为您没有使用CMAKE构建OpenCV 2.0。如果要使用OpenCV 2.0,必须构建它,使其在Visual Studio中正常工作。如果您不想构建它,那么我建议降级到OpenCV 1.1pre,它是预构建的,在VisualStudio中更容易理解
另一个选择是放弃OpenCV,选择EmguCV。我和OpenCV玩了大约一年,当我切换到EGGUV时,事情变得简单了很多,因为EngUCV与.NET一起工作,所以你可以使用一个像C语言这样的语言,它不包含指针、头文件和内存分配问题的所有C++包。
至于64位与32位的问题,OpenCV并不正式支持64位。为了安全起见,请打开项目属性,并将“构建”选项卡下的“平台目标”从“任意CPU”更改为“X86”。这应该在你使用OpenCV做任何事情的时候完成,即使你使用的是像EmguCV这样的包装器。至于@Marc的答案,我认为VC不会使用来自操作系统的路径。你把路径添加到VC的库路径了吗。我通常会将dll添加到项目中,如果版本较新,则进行复制,这对我来说非常有效。只需打开bin文件夹,将.dll文件复制并粘贴到您正在使用的文件夹中。添加“路径”后,应能解决此问题,仅供参考。,对于我的win7,我需要重新启动它才能让它工作。我按照上的说明操作,但仍然遇到了完全相同的问题,下面是我如何解决它的
C:\OpenCV2.2\include\代码>
库目录。。。添加:C:\OpenCV2.2\lib;C:\OpenCV2.2\bin代码>
源目录。。。加:
C:\OpenCV2.2\modules\calib3d\src;C:\OpenCV2.2\modules\contrib\src;C:\OpenCV2.2\modules\core\src;C:\OpenCV2.2\modules\features2d\src;C:\OpenCV2.2\modules\flann\src;C:\OpenCV2.2\modules\gpu\src;C:\OpenCV2.2\modules\gpu\src;C:\OpenCV2.2\modules\highgui\src;C:\OpenCV2.2\modules\imgproc\src;C:\OpenCV2.2\modules\legacy\src;C:\OpenCV2.2\modules\ml\src;C:\OpenCV2.2\modules\objdetect\src;C:\OpenCV2.2\modules\video\src;
链接器->输入->其他依赖项
对于调试版本。。。加:
opencv_calib3d220d.lib;opencv_contrib220d.lib;opencv_core220d.lib;opencv_features2d220d.lib;opencv_ffmpeg220d.lib;opencv_flann220d.lib;opencv_gpu220d.lib;opencv_highgui220d.lib;opencv_imgproc220d.lib;opencv_legacy220d.lib;opencv_ml220d.lib;opencv_objdetect220d.lib;opencv_video220d.lib;
希望这能有所帮助。不需要做任何事情。这是一个VisualStudio错误 到这里来: 并下载适用于计算机操作系统的相应修复程序 关闭visual studio,运行修复程序,然后重新启动VS
代码应该运行无误。我在opencv上遇到过很多问题,只有在可怕的4-6个月后才成功。这是我遇到的最后一个问题,但上述所有问题都没有解决。对我来说,有效的方法是将opencv_core2*.dll(以及opencv_highgui2*.dll,因为您也包含了它)复制并粘贴到您项目的发布(或调试文件夹——我假设。尚未测试过)文件夹中,您的应用程序文件就在该文件夹中
希望这有帮助 从System32中的/bin复制所有.dll您只需将所需dll文件的文件夹添加到“路径”中的系统“环境变量”中即可。
你的问题将100%得到解决。我也有这个问题。您可以在opencv\build\x86\vc12\bin文件夹中找到opencv\u core248和其他DLL。只需将所需的DLL复制到system32文件夹中。你的应用程序应该在一瞬间开始工作!希望有帮助。只需将.dll文件复制到Visual Studio 2013中的C:\windows\system32\,您需要将其添加到
环境变量中,然后重新启动电脑。这是.dll文件所在的路径
这可能就像复活一匹死马。但就在这里,对于这类问题的答案是简单地将dll放入system32文件夹的原因是因为该文件夹位于操作系统的系统路径中
实际上,为操作系统提供路径链接是最佳实践
使用windows 10
打开文件管理器
右键单击“此电脑”并选择“属性”
现在,在弹出的“控制面板\系统和安全\系统”窗口中,单击左侧面板上的“高级系统设置”
在下一个窗口的底部,单击“环境变量”按钮
在下一个窗口中,有两个面板,顶部面板用于向当前用户修改变量,底部面板用于向系统修改变量。在底部面板上,找到变量“Path”并单击以选择它,然后单击