【问题标题】:Does the Client Required OpenCv Installation on their machine to run the C++ DLL ( used Opencv Libraries )? [closed]客户是否需要在他们的机器上安装 OpenCv 才能运行 C++ DLL(使用过的 Opencv 库)? [关闭]
【发布时间】:2013-04-22 06:35:43
【问题描述】:

如何分别制作一个DLL where声明和实现部分。

解释:

在 DLL 中

我已经在我的机器上安装了 Opencv,我需要创建一个 DLL,客户端可以在其中访问我的新机器上的 DLL(无需安装 OpenCV)。如何构建这样的DLL

我创建了 dll,但是当我在另一台机器上运行时,它要求提供 Opencv 头文件??如何解决这个问题??

【问题讨论】:

  • 我不知道您在问什么,但是如果您将 C++ 应用程序链接到第三方库,您将需要分发这些库(作为 DLL)或静态链接到这些库。
  • 让我详细解释一下,我已经构建了我使用 Opencv Libraries 的 c++ DLL,但是当我使用 TestApplication 在另一个上测试 DLL 时 - 它要求 Opencv 头文件,如错误 C1083:无法打开包含文件:'opencv/cv.h':没有这样的文件或目录,错误 C1083:无法打开包含文件:'opencv2/highgui/highgui.hpp'
  • 如果 TestApplication 在源代码中并且需要在客户端编译,则需要将头文件与 dll 一起分发。如果 TestApplication 是已编译的应用程序,您只需要 dll。
  • @drescherjm 要编译 TestApplication,我们还需要提供 Opencv 头文件吗?
  • 是的,在这种情况下,您需要分发标头。

标签: c++ opencv dll


【解决方案1】:

当我使用 DLL 时,还需要包含这些 DLL 的头文件。您将向您的客户提供标头。

【讨论】:

  • 我的问题是客户是否需要在他们的机器上安装 OpenCv 才能运行 C++ DLL(使用 Opencv 库)?
【解决方案2】:

我认为您要做的是编译 OpenCV 和您的静态链接程序。基本上,它的作用是,不是将新编译的 DLL 链接到 OpenCV DLL,而是链接到 OpenCV 库的 .obj 文件。这种方法的问题是你必须为你想要支持的每个平台单独编译它。可以在here 找到一些帮助您入门的示例说明。它适用于 Mac,但它介绍了与任何其他平台都有些相似的基本过程。

【讨论】:

    【解决方案3】:

    为了在另一个系统中运行 OpenCV 包含的 app(exe)(没有安装 openCV), 只需从 'C:\OpenCV2.1\bin' 或 opencv 安装目录中的 bin 文件夹复制 'dll' 文件(仅 dll),然后将它们粘贴到您的 exe 目录中。

    【讨论】:

      猜你喜欢
      • 2012-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多