gpt4 book ai didi

opencv - 带有 OpenCV 2.4.10 版 DLL 的 Visual Studio 2012 缺少错误

转载 作者:太空宇宙 更新时间:2023-11-03 21:56:59 28 4
gpt4 key购买 nike

我发现了几个与此相关的问题并进行了尝试。但是,我仍然无法解决问题。以下是我使用过的网站以及对我所做工作的解释。

Visual Studieo 2010 with OpenCV 2.3.0

OpenCV Tutorial C++

Another Visual Studio 2010 example

我用的是:

  • Windows 7 专业版 x64
  • 适用于 Windows 桌面的 Visual Studio 2012
  • OpenCV v2.4.10解压到D:\Development\OpenCV

第 1 步:我进入计算机 > 属性 > 高级系统设置 > 环境变量 并添加:D:\Development\openCV\build\x64\vc11\bin\Path 变量的末尾。然后我重新启动了计算机。

第 2 步:创建了一个新项目并编辑了所有配置 的属性。

  • Configuration Properties > C/C++ > General 下,我添加了 D:\Development\openCV\build\include
  • Configuration Properties > Linker > General 下,我添加了 D:\Development\openCV\build\x64\vc11\lib
  • Configuration Properties > Linker > Input 下,我添加了 opencv_calib3d2410d.lib
    opencv_contrib2410d.lib
    opencv_core2410d.lib
    opencv_features2d2410d.lib
    opencv_flann2410d.lib
    opencv_gpu2410d.lib
    opencv_highgui2410d.lib
    opencv_imgproc2410d.lib
    opencv_legacy2410d.lib
    opencv_ml2410d.lib
    opencv_nonfree2410d.lib
    opencv_objdetect2410d.lib
    opencv_photo2410d.lib
    opencv_stitching2410d.lib
    opencv_superres2410d.lib
    opencv_ts2410d.lib
    opencv_video2410d.lib
    opencv_videostab2410d.lib
  • Configuration Properties > Linker > Advanced 下,我将 Target Machine 更改为 MachineX64

第 3 步:对于 Build > Configuration Manager,项目更改为 x64 平台。

第 4 步:我从上面的链接之一复制并粘贴了代码,并修改了图像的路径并构建了它。

#include "stdafx.h"

#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
Mat im = imread("D:/lena.png");
if (im.empty())
{
cout << "Cannot load image!" << endl;
return -1;
}
imshow("Image", im);
waitKey(0);
}

第 5 步:我按下 F7 并成功构建了解决方案。 (可悲的是,花了一段时间才达到这一点)

问题 是当我按 F5 时,我会收到一条错误消息“该程序无法启动,因为您的计算机缺少 opencv_core2410d.dll。请尝试重新安装该程序以解决此问题。”

我认为将它添加到路径的第一步是解决方案。通过将 DLL 移动到 D:\Development\VisualStudio\opencvHelloWorld\x64\Debug 文件夹中,我可以运行可执行文件。谁能阐明如何解决这个问题?我错过了什么?

谢谢!

最佳答案

OpenCV 需要您用于项目的任何 dll 与可执行文件位于同一目录中。您可以将所需的 dll 复制到您的调试文件夹中,在本例中为 opencv_core2410d.dll,将 opencvcore2410.dll 复制到您的发布文件夹中,或者设置 visual studio 将您的可执行文件移动到 bin 文件夹中。这个选项在 Project->Properties 下,在 General 页面上你可以改变输出目录。

另一种选择是使用静态库而不是 opencv 的动态库。这会将您正在使用的任何 opencv 函数添加到您的可执行文件中,而不是使用单独的 dll。这将使您的可执行文件更大,但会消除任何 dll 问题。在opencv目录下的build/x64或x86/vc11下,使用staticlib文件夹下的库将项目构建为静态项目。首先,您需要在解决方案中添加更多资源才能进行编译。 This answer应该可以帮助您解决通过切换到静态构建而遇到的任何链接器问题。

如果你计划部署你的可执行文件并且你不想用它打包 dll,使用静态库是你可以进行项目的另一种方式

关于opencv - 带有 OpenCV 2.4.10 版 DLL 的 Visual Studio 2012 缺少错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26964264/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com