2013-04-22 55 views
-4

如何使声明和实现部分分开。客户端是否需要在其计算机上安装OpenCv以运行C++ DLL(使用Opencv库)?

说明:

在DLL

我已经在我的机器上安装opencv的,我需要建立一个DLL,客户端可以访问他们的新机器上我的DLL(如果没有安装OpenCV的)。如何建立这样的DLL

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

+1

我不知道你在问什么,但是如果你将C++应用程序链接到第三方库,你将需要分发这些库(作为DLL)或静态链接到库。 – 2013-04-22 06:43:05

+0

让我详细解释一下,我已经构建了使用Opencv库的C++ DLL,但是当我使用TestApplication测试另一个DLL时 - 它要求Opencv头文件,如错误C1083:无法打开包含文件:'opencv/cv .h':没有这样的文件或目录,错误C1083:无法打开包含文件:'opencv2/highgui/highgui.hpp' – Pixel 2013-04-22 06:46:41

+1

如果TestApplication在源代码中并且需要在客户端上编译,则需要将头文件与你的DLL。如果TestApplication是一个已编译的应用程序,您只需要dll。 – drescherjm 2013-04-22 06:57:41

回答

2

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

+1

我的问题是客户端是否需要在他们的机器上运行C++ DLL(使用Opencv库)的OpenCv安装? – Pixel 2013-04-22 06:39:57

1

我认为你要做的是编译OpenCV和你的程序进行静态链接。基本上,这样做的目的不是将新编译的DLL链接到与OpenCV库的.obj文件链接的OpenCV DLL。这种方法的问题在于,您将不得不为需要支持的每个平台单独编译它。一些示例说明可以帮助您开始使用here。它适用于Mac,但它可以遍历基本过程,对于任何其他平台而言,它都会有点类似。

1

对于在另一个系统(未安装openCV)中运行OpenCV附带的应用程序(exe), 只需从'C:\ OpenCV2.1 \ bin'或bin文件夹复制'dll'文件(仅dll) opencv安装的目录并将它们粘贴到您的exe目录中。

相关问题