2017-04-13 36 views
0

我想將opencv 2.4.13鏈接到Visual Studio項目。我在項目的子文件夾中有.lib和.dll文件。我添加了配置的相對路徑。但我仍然有鏈接錯誤。 我的目標是讓項目變得可移植:我將目錄帶到另一臺機器上,我將能夠在機器上單獨安裝opencv的情況下運行。使Opencv便攜式與視覺工作室項目,並消除聯繫錯誤

我說什麼:

  • 庫子目錄下附加庫目錄
  • 的包括目錄附加包含目錄
  • 在鏈接.dll文件 - >輸入 - >附加依賴

以下是這些錯誤的示例:

LNK2019 unresolved external symbol __wcsdup_dbg referenced in function __Getctype 
LNK2001 unresolved external symbol __wcsdup_dbg 
LNK2019 unresolved external symbol __realloc_dbg referenced in function "private: static void __cdecl std::locale::_Locimp::_Locimp_Addfac(class std::locale::_Locimp *,class std::locale::facet *,unsigned int)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@Z) 

任何想法?

回答

0

我終於想通了使用上這個問題的答案: Question: OpenCV - missing dlls?

我只是說我的DLL來調試環境的路徑:項目 - >屬性 - >配置屬性 - >調試 - >環境 - >在這裏添加的DLL的路徑,使用以下語法:

  • 例如,要前置C:\的Windows \溫度到PATH:PATH = C:\ Windows \溫度;%PATH%
  • 類似地,爲將$(SolutionDir)\ DLLS附加到PATH:PATH =%PATH%; $(SolutionDir)\ DLLS
0

確保您的所有庫都使用相同的調試配置構建 - 也就是說,如果要構建項目的DEBUG版本,則需要將其與DEBUG庫鏈接,並且如果要構建RELEASE您的項目版本,您需要將其鏈接到RELEASE庫。

同樣,您需要確保其他所有內容在您的構建選項中都是兼容的 - 例如,如果這些庫是在啓用了/ MT的情況下構建的,則還必須在啓用/ MT的情況下構建您的應用程序。與調用約定(/ Gd,/ Gr,/ Gz)相同,32位或64位等。

鏈接器錯誤您將獲得參考_dbg符號,這似乎暗示您有DEBUG/RELEASE不一致的地方。

+0

謝謝你,似乎解決了聯繫錯誤。但是現在我有一個運行時錯誤告訴我它找不到* .dll文件。你碰巧知道這個原因嗎? – Amani

+0

將dll文件的位置添加到您的系統PATH。 –

+0

但是,這不會破壞包含項目文件夾中所有文件的目的。這是否意味着如果我將該項目帶到另一臺計算機上,我將不得不將該dll文件添加到系統PATH中? – Amani