OpenCV - DLL丢失了,但事实并非如此?

cha*_*-22 32 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("Window");
    cvReleaseImage(&newImg);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我跑这个时,我明白了

程序无法启动,因为您的计算机缺少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

是什么赋予了?我正在使用visual studio 2008.

当我链接.dll文件而不是.dll.a文件时,我得到了

致命错误LNK1107:文件无效或损坏:无法读取0x3F8 libcv200.dll

小智 23

我按照http://opencv.willowgarage.com/wiki/VisualC%2B%2B_VS2010上的说明进行操作,但仍然遇到了完全相同的问题,所以这就是我如何解决它的问题.

  1. 获得MSVC 2010快递版.

  2. 获取Win 32 OpenCV 2.2二进制文件并安装在默认位置.

  3. 创建了新项目.

  4. 项目设置

    项目 - > OpenCV_Helloworld属性...配置属性 - > VC++目录

    包括目录...添加: 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;
    
    Run Code Online (Sandbox Code Playgroud)

    链接器 - >输入 - >附加依赖...

    对于Debug Builds ...添加:

    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;
    
    Run Code Online (Sandbox Code Playgroud)

此时我认为我已经完成了,但遇到了在调试模式下运行exe时遇到的问题.一旦你看到它,最后一步是显而易见的,选择:

链接器 - >常规...将"使用库依赖项输入"设置为"是"

希望这可以帮助.

  • 这样做之后,问题依然存在.然后我重新启动了MS Visual Studio 2010,然后它运行了. (5认同)
  • 谢谢你的解决方案.是我的问题的快速解决方案. (2认同)
  • @ ParagS.Chandakkar你的评论应该是答案的实践! (2认同)

YOU*_*YOU 16

只需添加C:\OpenCV2.0\binPATH环境变量中即可

要么

安装OpenCV时

选择该选项,Add OpenCV to the system PATH for current user该选项不是默认选项


Ste*_* Du 14

仅为了您的信息,在添加"PATH"后,对于我的win7,我需要重新启动才能使其正常工作.

  • 最后,重新启动帮助了我. (3认同)

小智 6

我在opencv上遇到了很多问题,仅在经历了令人毛骨悚然的4-6个月之后才取得了成功.这是我遇到的最后一个问题,但上述所有问题都无法解决.对我来说有用的只是复制并粘贴opencv_core2*.dll(以及opencv_highgui2*.dll,因为你将它包括在内也会要求它)到发行版(或调试文件夹中 - 我假设.还没有测试过)项目的文件夹,您的应用程序文件所在的文件夹.

希望这可以帮助!


Sab*_*viş 6

在Visual Studio 2013,你需要它添加到Environment Variables,然后Restart你的电脑.这是.dll文件所在的路径.

在此输入图像描述