缺少 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并编译。如果出现新错误,则表示您尚未进行正确的配置。

编辑:对 cme​​ts

这里是包含目录和库目录。您是否将相关的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的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 2.4.8 视觉工作室 2012

缺少 C++ MSVCP120D.DLL

修复“您的计算机中缺少 MSVCP110D.dll”问题

打开我的项目 exe 后缺少 mfc120d.dll

缺少使用 viola opencv core2410d.dll 的 Opencv 人脸检测

Matlab 的 libifcorem​d.dll 中缺少符号“for_realloc_lhs”