缺少 opencv_core248d.dll
Posted
技术标签:
【中文标题】缺少 opencv_core248d.dll【英文标题】:Missing opencv_core248d.dll 【发布时间】:2014-02-27 16:56:41 【问题描述】:我正在尝试安装 OpenCV 2.4.8。事实证明,这比预期的要复杂得多。教程都过时了。这是我目前的问题:
我在 64 位机器上运行,我只是在尝试一个简单的示例代码:
#include <opencv\cv.h>
#include <opencv\highgui.h>
using namespace cv;
int main()
Mat image;
VideoCapture cap;
cap.open(0);
namedWindow("window",1);
while(true)
cap >> image;
imshow("window", image);
waitKey(33);
return 0;
当我运行此程序时,我收到一条错误消息,指出缺少 opencv_core248d.dll
。检查 bin 目录,它就在那里。我该如何解决这个问题?
问候
编辑:过去 3 小时我一直在处理这个问题。谁能帮我解决这个问题,我会得到这么多的代表和爱……说真的,我越来越绝望了
Edit2:一些设置的图片:
OPENCV_BUILD = C:\OpenCV\build\
【问题讨论】:
你见过this吗? 是的,这是针对旧版本的。他们使用的某些链接在新版本中不存在。 【参考方案1】:您遇到了 OpenCV dll 问题,类似于 here。解决 OpenCV 的 dll
相关问题的三种方法,也适用于其他 dll 相关问题。
将所需的 dll 复制到与您的应用程序相同的文件夹中。这会更好一些,因为它可以让您为何时需要在未安装 OpenCV 的系统上部署应用程序做好准备(然后不要忘记构建应用程序的发布版本)。
将dll路径添加到Debugging Environment
:项目->属性->配置属性->调试->环境->在这里添加dll的路径。语法为NAME=VALUE
,可以使用宏(例如$(OutDir)
)。
例如,将 C:\Windows\Temp
添加到 PATH:PATH=C:\WINDOWS\Temp;%PATH%
同样,将$(SolutionDir)\DLLS
附加到PATH:PATH=%PATH%;$(SolutionDir)\DLLS
将dll路径添加到Environment Variables
(注意里面的路径用;
隔开)
编辑:三种方法中,前两种只适用于本项目(本地),后一种适用于您PC中的所有项目(全局)。
【讨论】:
1.具体是哪个文件夹?项目文件夹或更具体的子文件夹?将其添加到项目文件夹不会改变任何内容。 3. 我以前做过。我仍然有那个错误。 2. 我不太明白语法。但是看到您的其他两个解决方案不起作用,我认为我的程序存在“更深层次”的问题。 @BananaCode 输出文件夹(.exe 预计会在其中生成)。 此解决方案有效。谢谢!然而,它似乎更像是一个创可贴修复。有没有办法避免复制它需要的每个 .dll 文件?【参考方案2】:您是否尝试将 C:\OpenCV2.0\bin
添加到您的 PATH 变量中?是的,安装 OpenCV 可能是一件苦差事:/
您是否完成了正确的项目设置,例如添加源库、源目录等?无论如何,如果我的猜测是正确的,以下将解决该特定错误:
进入你的项目属性,Linker -> Input -> Additional Dependencies,添加opencv_core248d.dll
并编译。如果出现新错误,则表示您尚未进行正确的配置。
编辑:对 cmets
这里是包含目录和库目录。您是否将相关的build/include
和\lib
分别添加到包含和库目录中?这是一些需要完成的“配置”。
EDIT2:回答您的编辑
是的,看起来您确实进行了配置。被你的cmets弄糊涂了。
1) 我不确定 $(OPENCV_BUILD) 是否有效。也许您想尝试C:\OpenCV2.4\lib
,(直接链接)等而不是那样。
2) 转到您的链接器输入并编辑对此的附加依赖项(图片来自我的一本书):
希望它有效。别担心。我知道你的感受。我被困在安装 OpenCV 将近一个星期,只有一个人的 youtube 视频救了我。我需要编辑一些头文件。但这是一个与你不同的问题。祝你好运,希望我的方法奏效。
EDIT3:希望这能解决您的问题,试试这些。
1) 如果您使用“创可贴”方法,这意味着每次都必须复制粘贴 dll 文件,我怀疑您的 PATH 变量是错误的。仔细检查一下。
您的等效项类似于(您从其中复制 dll 文件的路径/您在属性页中添加的库目录的路径。但最后不是 lib,而是使用 bin 文件夹) :
C:\OpenCV2.3\build\x86\vc10\bin
更多详情:Setting window path
如果您这样做了,只需检查您是否已用分号分隔它们。
2) 不确定这是否真的是缺少.dll
文件的解决方案,如果我没记错的话,更多的是链接错误。但是,如果第 1 步不起作用,或者如果第 1 步有效并且您面临另一个错误,请试一试。最多只能撤消它。
对于每个头文件,例如core.hpp
文件,添加以下行:
#pragma comment(lib,"opencv_core248.lib")
#pragma comment(lib,"opencv_core248d.lib")
这需要对您使用的所有头文件进行。放在哪里?我把我的放在这里:
highgui.hpp
等也是如此,但您更改了名称,所以 #pragma comment(lib,"opencv_core248.lib")
变为 #pragma comment(lib,"opencv_highgui248.lib"
等...
希望一切顺利。我认为如果路径变量,但如果不是并且第二种方法不起作用,我就没有任何线索了。
【讨论】:
我使用的是 2.4.8 版本。这条路不存在。但是我已经将它的等价物放入路径变量中,我得到了同样的错误。我没有对 VC++ 目录选项做任何事情,因为我使用的教程都没有说明它们。 您是否尝试过我的链接器 -> 输入 -> 附加依赖项解决方案?是否出现了新错误? 是的,那里有很多不同的教程,其中大多数实际上要求我们做属性...你用的是哪个教程?我将编辑我的答案,向您展示我自己的 VS 2010 中的 VC++ 目录选项 是的,我尝试了 Additional Dependencies 解决方案,但没有奏效。感谢您的帮助,非常感谢。 对不起。如果是面对面的,可能会帮助你更多。希望你做对了。不要放弃。 OpenCV 安装是一件苦差事。但是图书馆非常有趣和有用!如果您具有良好的编程技能,那么之后的问题将是最小的。 (:如果你得到它,请告诉我们解决方案。我也问你。如果我有新的解决方案,将再次编辑我的答案(:以上是关于缺少 opencv_core248d.dll的主要内容,如果未能解决你的问题,请参考以下文章