OpenCV 3.4.0 - 找不到zlibd1.dll

时间:2018-01-24 20:29:49

标签: c++ opencv dll visual-studio-2017

我有以下程序,与this tutorial page for OpenCV 3.4.0相同。我在使用Windows 10 Enterprise 64位的64位笔记本电脑上使用Visual Studio 2017社区。

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main( int argc, char** argv )
{
    if( argc != 2)
    {
     cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
     return -1;
    }

    Mat image;
    image = imread(argv[1], IMREAD_COLOR); // Read the file

    if( image.empty() ) // Check for invalid input
    {
        cout << "Could not open or find the image" << std::endl ;
        return -1;
    }

    namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.
    imshow( "Display window", image ); // Show our image inside it.

    waitKey(0); // Wait for a keystroke in the window
    return 0;
}

通过为此项目设置包含和链接器目录和库,解决方案构建得很好。但是当我运行程序时,我收到以下错误:

&#34;代码执行无法继续,因为找不到zlibd1.dll。重新安装程序可能会解决此问题。&#34;

从我最初的研究来看,它不一定来自Visual Studio 2017.当我尝试创建一个新项目时,我没有选择&#34; Win32控制台应用程序。&#34;此源代码所在的项目是Visual C ++下的Windows控制台应用程序类型,支持.NET Framework 4.5。

我在这里缺少什么?

根据教程,我应该只使用OpenCV 3.4.0提供的库和动态链接库。我记得有一次使用NuGET尝试再次安装OpenCV 3.4.0,as explained here,当我试图从OpenCV 3.4.0本身的文件中解决有关fopen的编译错误时。

2 个答案:

答案 0 :(得分:0)

好吧,显然这是关于我的系统路径的问题。它设置不正确,之前,我所拥有的是路径变量设置如下:

%OPENCV_DIR%\lib
%OPENCV_DIR%\bin

$(OPENCV_DIR)只是OpenCV 3.4.0的构建目录。

但那里的目录不存在,因此无法找到库。所以,我用它替换了它们:

%OPENCV_DIR%\x64\vc15\bin
%OPENCV_DIR%\x64\vc15\lib

现在程序正在运行。我在那里想什么?

无论哪种方式,需要注意的重要一课:当您收到一条弹出消息,指出由于缺少库而无法打开程序,并且是OpenCV 3.4.0的一部分时,确保您的系统Windows 10系统高级设置中的路径存在的OpenCV目录

答案 1 :(得分:0)

此软件包有在调试下运行的问题,并导致zlibd1.dll问题。如果可以或使用其他nuget程序包,请切换到发布。

**enter image description here**

enter image description here