2012-04-01 49 views
2

我構建opencv 233作爲靜態庫,但是當我在應用程序中使用它時,它在調用cv :: imwrite()時提供鏈接錯誤,即tiff,png,jasp庫沒有鏈接。這是否意味着我應該將這些我的自我鏈接到我的應用程序中,或者我是否構建了它。Opencv靜態構建,JPEG,PNG,TIFF不靜態鏈接?

我希望3party庫是靜態包含在opencv_highgui.lib中,而不必在我的應用程序中自己鏈接它們。

enter image description here

回答

1

在該解決方案中,如果爲visual studio 2010配置,則第三方庫未設置爲鏈接。將high庫項目的鏈接庫依賴項更改爲true。

+0

嗯,我想這是因爲您的CMake配置錯了,但如果不是,您可能希望通過提交錯誤報告來幫助OpenCV。 +1回答你自己的問題。 – ypnos 2012-04-01 20:08:08

+0

也許我把它設置成了委屈,但我很難搞清楚設置了哪個標誌。 (包括我的設置轉儲) – 2012-04-01 21:34:50

+0

感謝發佈。看來你偶然發現了一個OpenCV編譯系統的bug,因爲你必須手工更改解決方案。 – ypnos 2012-04-01 23:58:43

-2

在cmake的,請確保您有BUILD_3RDPARTY,或不管它被調用,檢查。然後OpenCV將從它自己的樹中建立lib依賴關係並靜態鏈接到highgui。這是Windows的默認設置。

+0

我沒有看到任何BUILD_3RDPARTY,只有WITH_JPPEG,WITH_PNG,我已經檢查過這些。 – 2012-04-01 16:43:29

+0

另外,在解決方案中,所有第三方庫都是正確構建的,但它們只位於它們自己的文件夾中。 – 2012-04-01 16:45:29

+0

該變量稱爲OPENCV_BUILD_3RDPARTY_LIBS。在CMake中使用搜索框並不難,是嗎? – ypnos 2012-04-01 20:07:29