“程序无法启动,因为您的计算机中缺少 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 Directories
、Additional Library Directories
和 Additional 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 -> C/C++
作为第一个,properties -> Linker -> General
和Input
作为其他两个。
重新启动 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】:我知道这是一篇旧帖子,但我注意到我在区分 lib
和 bin
时存在问题,因此我将两者都添加到了 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++ 中的错误的主要内容,如果未能解决你的问题,请参考以下文章