我正在尝试安装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 \
答案 0 :(得分:2)
您正在遇到 OpenCV dll问题,类似于here。修复dll
相关问题的三种方法 - 也适用于其他dll相关问题。
将所需的dll复制到应用程序的同一文件夹中。这有点好一点,因为当您需要在没有安装OpenCV的系统上部署应用程序时,它会为您做好准备(因为不要忘记构建应用程序的发布版本)。
将dll路径添加到Debugging Environment
:项目 - &gt;属性 - &gt;配置属性 - &gt;调试 - &gt;环境 - &gt;在这里添加dll的路径。语法为NAME=VALUE
,可以使用宏(例如,$(OutDir)
)。
例如,要将C:\Windows\Temp
添加到路径:PATH=C:\WINDOWS\Temp;%PATH%
同样,要将$(SolutionDir)\DLLS
附加到路径:PATH=%PATH%;$(SolutionDir)\DLLS
将dll路径添加到Environment Variables
(请注意其中的路径以;
分隔)
编辑:在这三种方法中,前两种方法仅适用于此项目(本地),最后一种方法适用于PC(全局)中的所有项目。
答案 1 :(得分:1)
您是否尝试将C:\OpenCV2.0\bin
添加到PATH变量中?是的,安装OpenCV可能是一件苦差事:/
您是否已完成正确的项目设置,例如添加源库,源目录等?无论如何,如果我的猜测是正确的,以下将解决该特定错误:
转到您的项目属性,链接器 - &gt;输入 - &gt;其他依赖项,添加opencv_core248d.dll
并编译。如果出现新错误,表示您尚未进行正确配置。
这里是包含目录和库目录。您是否添加了相关的build/include
&amp; \lib
分别进入include和library目录?这是一些需要完成的“配置”。
EDIT2:回答你的编辑
是的,看起来你确实做了配置。被你的评论搞糊涂了。
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不起作用,或者第一步有效并且您遇到另一个错误,请试一试。最多,你可以撤消它。
对于每个头文件,例如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"
等等......
希望一切顺利。我想如果路径变量,但如果没有和第二种方法不起作用,我就没有线索了。