2014-02-26 121 views
1

當我們以動態方式或靜態方式構建opencv庫時,我們將生成幾個分離的庫。以2.48版本爲例,我們將有opencv庫之間的依賴關係

opencv_core248 opencv_imgproc248 zlib IlmImf comctl32 opencv_highgui248 libpng 

等等。所以我的問題顯然存在這些庫之間的一些依賴關係,例如,如果我想在項目中調用opencv_core248opencv_imgproc24庫,我有鏈接錯誤。然後,如果我添加zlib庫,編譯錯誤將被解決。

問題:我想問一個非常普遍的問題:我如何知道所有庫內部opencv之間的依賴關係?有一些我可以遵循的文件嗎?謝謝。

+0

顯然你的意思是鏈接錯誤? –

+0

@AlexChamberlain謝謝。 – feelfree

回答

2

我不認爲有文檔列出OpenCV庫之間的所有依賴關係。

不過我可以建議兩種方法來找出這些依賴關係:

  • 使用Dependency Walker,一個免費的工具,允許分析可執行文件和DLL。例如,如果您打開opencv_calib3dXXX.DLL(其中XXX代表您的OpenCV版本),則會看到它需要opencv_coreXXX.dllopencv_flannXXX.dllopencv_imgprocXXX.dllopencv_features2dXXX.dll以及一些系統DLL。

  • 使用CMake生成的項目結構,這是一個用於跨平臺編譯的免費工具,用於從源代碼中提供OpenCV。例如,如果我爲VS2010生成項目結構並將其打開,則可以右鍵單擊與opencv_calib3d關聯的項目並查看項目依賴關係。

我提到了我所知道的用於Windows的工具,但其他平臺也必須存在等效工具。