2013-04-22 50 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目錄中。

相關問題