“程序无法启动,因为您的计算机中缺少 opencv_world300.dll”C++ 中的错误

Posted

技术标签:

【中文标题】“程序无法启动,因为您的计算机中缺少 opencv_world300.dll”C++ 中的错误【英文标题】:"The program can't start because opencv_world300.dll is missing from your computer" error in C++ 【发布时间】:2015-07-29 21:04:33 【问题描述】:

我想在 Visual Studio 2013 中编译一个 opencv Console C++ 程序。这是我的代码:

#include "stdafx.h"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, const char** argv)

    Mat img = imread("rgb_1.png", CV_LOAD_IMAGE_UNCHANGED); //read the image data in the file "MyPic.JPG" and store it in 'img'

    if (img.empty()) //check whether the image is loaded or not
    
        cout << "Error : Image cannot be loaded..!!" << endl;
        //system("pause"); //wait for a key press
        return -1;
    

    namedWindow("MyWindow", CV_WINDOW_AUTOSIZE); //create a window with the name "MyWindow"
    imshow("MyWindow", img); //display the image which is stored in the 'img' in the "MyWindow" window

    waitKey(0); //wait infinite time for a keypress

    destroyWindow("MyWindow"); //destroy the window with the name, "MyWindow"

    return 0;

虽然我已经在 Computer 和 Visual Studio 目录的属性中定义了所有目录,但我收到以下错误:

“程序无法启动,因为您的计算机中缺少 opencv_world300.dll。”

我该如何解决这个问题?

【问题讨论】:

如果您的 dll 有问题,最简单的做法是将其复制并粘贴到您的项目可执行输出文件夹中 我注意到这个 dll 没有与其他 dll 一起放置。您需要找出opencv_world300.dll 所在的文件夹。就是这样。 【参考方案1】:

在windows下你可以复制它:

<your install directory>\opencv30\build\x64\vc12\bin

并将其放入您的 Visual Studio 解决方案中(我假设您使用的是 x64/Release 配置):

<your solution directory>\x64\Release

或者你可以将上面的 OpenCV 添加到你的 PATH 环境变量中

【讨论】:

它工作得很好,这很好,但我不明白为什么它在没有当前 hack 的情况下在 之前工作得完美无瑕。 @RevJohn 您能否解释一下如何执行此操作:“并将其放入您的 Visual Studio 解决方案中(我假设您使用的是 x64/Release 配置):\x64\Release " 进入系统环境变量并向下滚动到“路径”变量,编辑它并添加“\opencv30\build\x64\vc12\bin”到(确保follow ; 语法等)。然后重新启动visual studio,你应该已经设置好了。 即使我遇到了这个问题,但通过复制 dll 解决了,因为我在公司 PC 上并且不允许编辑环境变量。如果我无法编辑环境变量,是否将 dll 复制到解决方案中是解决此问题的唯一方法?【参考方案2】:

我遇到了同样的问题。

我使用的是 320 版本。设置完所有环境变量后,请确保您的 Additional Include DirectoriesAdditional Library DirectoriesAdditional Dependencies 均正确无误。对我来说,它们分别是$(OPENCV_BUILD)\include;$(OPENCV_BUILD)\x64\vc14\lib;opencv_world320d.lib;

我的OPENCV_BUILD 路径变量是C:\opencv320\build 将环境变量设置为%OPENCV_BUILD%\x64\vc14\bin (.dll 文件所在的位置)。要获得Additional 的内容,请右键单击您的项目/解决方案并选择properties -&gt; C/C++ 作为第一个,properties -&gt; Linker -&gt; GeneralInput 作为其他两个。

重新启动 Visual Studio,如果一切都正确实施,那么您应该能够运行该程序并且它应该会启动。

编辑:

根据您使用的内容,我还必须在 Solution Platforms 下拉列表中将我的从 x86 切换到 x64

【讨论】:

【参考方案3】:

您可以检查您的系统变量以确认opencv_world300.dll所在的目录(可能是C:\opencv\build\x64\vc12\bin)存在。

如果存在但问题仍未解决,尝试将.dll目录下的所有文件放到C:\WINDOWS\system32

【讨论】:

系统变量是叫PATH还是有其他的?变量的名称是否取决于 Windows 版本?读出变量的最佳方法是什么(示例会很好)? 建议将 DLL 复制到 Windows 系统目录中,这太糟糕了。只需正确设置PATH,而不是把你的操作系统弄得一团糟。【参考方案4】:

如果这个问题仍然相关,我想办法了。

我假设您使用OpenCV 网站上的教程来设置OpenCV。运行命令提示符并执行命令后,它会为 OpenCV 创建环境变量,但不会将其添加到路径中。所以如果你去路径并在vc12(我是vc14)中添加bin的位置,保存它,然后重新启动visual studio,它就可以工作了。

【讨论】:

【参考方案5】:

我知道这是一篇旧帖子,但我注意到我在区分 libbin 时存在问题,因此我将两者都添加到了 PATH 变量中并且它起作用了。

【讨论】:

【参考方案6】:

最好和简单的解决方案是

    在环境系统变量中添加 OpenCV/build/x64/bin 的 path_variable。

    然后重启visual studio。

这肯定能解决问题。

问题可能是您在打开 Visual Studio 后更新了路径变量,因此它无法更新 *.dll 文件。

【讨论】:

【参考方案7】:

在these instructions 之后安装 OpenCV 版本 3.4.1 以与 VS 2017 一起使用后,Visual Studio 抱怨缺少opencv_world341d.dll。即使我已将C:\opencv\build\x64\vc15\bin 添加到Windows PATH,Visual Studio 仍然找不到它,因为当我修改PATH 时VS 已经打开。重新启动 Visual Studio 解决了这个问题。

【讨论】:

【参考方案8】:

我在使用 320 版本时遇到了完全相同的问题。 就我而言,我的“Comodo Internet Security”阻止了应用程序本身和 OpenCV 的一些东西。通过在防火墙中右键单击它们,确保将它们全部放在“受信任”列表中。

【讨论】:

【参考方案9】:

按照大家所说的添加路径,并记住重新启动 Visual Studio。 我添加了所有路径,甚至尝试将所有 opencv_world.dll 复制到与源文件相同的文件夹中,我所要做的就是在添加所有路径后重新启动 Visual Studio。

【讨论】:

【参考方案10】:

在视觉工作室 2019 中, 试试这个 在您的项目应用程序 exe 文件所在的项目的调试目录中添加缺少的文件 opencv_world430.dll 或 opencv_worldd.dll。 在调试文件夹中复制并粘贴丢失的文件

C:\Users\myname\source\repos\myopencv\x64\Debug + 在此处添加您丢失的文件

我的问题在 microsoft visual studio 2019 中得到了解决 :)

【讨论】:

以上是关于“程序无法启动,因为您的计算机中缺少 opencv_world300.dll”C++ 中的错误的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 2.4.8 视觉工作室 2012