簡體   English   中英

使Opencv具有Visual Studio項目的可移植性,並消除鏈接錯誤

[英]Make Opencv portable with visual studio project and remove linkage errors

我正在嘗試將opencv 2.4.13鏈接到Visual Studio項目。 我在項目的子文件夾中有.lib和.dll文件。 我在配置中添加了相對路徑。 但是我仍然會收到鏈接錯誤。 我的目標是使項目可移植:將目錄移至另一台計算機,無需在計算機上單獨安裝opencv就可以運行。

我添加了什么:

  • lib子目錄到其他庫目錄
  • 包含目錄到其他包含目錄
  • 鏈接器中的.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)" (?_Locimp_Addfac@_Locimp@locale@std@@CAXPAV123@PAVfacet@23@I@Z)

有任何想法嗎?

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

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

您正在獲得參考_dbg符號的鏈接器錯誤,這似乎意味着您在某處存在DEBUG / RELEASE不一致。

我最終通過以下問題的答案弄清楚了: 問題:OpenCV-缺少dll?

我只是將dll的路徑添加到調試環境中:項目–>屬性–>配置屬性–>調試–>環境–>在此處使用以下語法添加dll的路徑:

  • 例如,要將C:\\ Windows \\ Temp放在PATH前面:PATH = C:\\ WINDOWS \\ Temp;%PATH%
  • 同樣,將$(SolutionDir)\\ DLLS附加到PATH:PATH =%PATH%; $(SolutionDir)\\ DLLS

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM