2014-09-19 321 views
0

我想從源代碼構建opencv與CUDA一起使用,目前我正在使用源自2.4.9的預構建設置,因爲git非常慢。LINK:致命錯誤LNK1104:無法打開文件opencv_gpu249d.lib

我使用Visual Studio 2013和CUDA 6.5 首先有像找不到opencv_core249d.lib等是許多錯誤,所以我加了prebuilt庫路徑變量,現在這些錯誤都沒有了,除了一個錯誤。它在lib/Debug裏面尋找opencv_gpu249d.lib,爲什麼它在未編譯的時候尋找這個opencv_gpu249d.lib? 爲什麼它不使用gpu249d.lib裏面的prebuilt庫?

謝謝

+0

你確定它存在嗎?以前的版本沒有提供對預編譯庫的任何gpu支持。 – berak 2014-09-19 08:42:24

+0

是的,它在這裏, OpenCV \ build \ x64 \ vc12 \ lib \ opencv_gpu249d – sa1991 2014-09-19 08:46:15

+0

只是說,如果你有源代碼,從頭開始構建*所有東西可能是明智的。至少你知道,這些零件是合適的。 – berak 2014-09-19 08:49:49

回答

1

請點擊此great wiki tutorial

對於CUDA編譯請CMAKE &選擇高級複選框Cuda模塊uncheckCUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE flag。現在編輯&享受。 enter image description here

+0

我已經取消選中Cuda_ATTACH_VS ....... 我仍然遇到編譯器試圖在lib/debug文件夾內尋找opencv_gpu298d.lib的問題 – sa1991 2014-09-19 11:29:19

+0

您是否通過VS構建源代碼?或者你只是將它複製到該文件夾​​? – 2014-09-19 11:43:34

+0

如果你的意思是lib文件,我將自己的路徑變量指向預建的lib文件中的lib文件,因爲如果找不到lib文件,VS會產生很多錯誤,我不知道爲什麼它需要預編譯的lib文件。 – sa1991 2014-09-19 11:56:06

0

預編譯的OpenCV庫不支持CUDA。您必須在啓用CUDA的情況下重新編譯它們。在嘗試從源代碼構建OpenCV 2.4.9 + CUDA 6.5 + vs2013之前,我嘗試了很多次。

總之,您需要取消'CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE',並啓用'WITH_CUBLAS','WITH_CUDA','WITH_OPENGL','WITH_TBB'。

詳細步驟可以在這裏找到:OPENCV 2.4.9 + CUDA 6.5 + VISUAL STUDIO 2013

TBB和Python可能是不必要的,但我不知道。我有他們兩個。編譯的opencv_gpu249d.lib對我來說工作正常。