我使用CMAKE在Windows上編譯OpenCV 3.0.0並使用CUDA支持。當我點擊「配置」,會出現錯誤如下:CMake:編譯OpenCV時未找到CUDA庫
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CUDA_cufft_LIBRARY (ADVANCED)
linked by target "opencv_hal" in directory E:/dev-lib/opencv3/sources/modules/hal
...
CUDA_nppc_LIBRARY (ADVANCED)
...
CUDA_nppi_LIBRARY (ADVANCED)
...
CUDA_npps_LIBRARY (ADVANCED)
我已籤「WITH_CUDA」和「WITH_CUFFT」中的條目。如果我也檢查「WITH_CUBLAS」,上面的輸出將增加一個CUDA_cublas_LIBRARY
錯誤。
但是,所有這些錯誤消息之前它表明
CUDA detected: 7.5
CUDA NVCC target flags: -gencode;arch=compute_20,code=sm_20;-gencode;arch=compute_20,code=sm_21;-gencode;arch=compute_30,code=sm_30;-gencode;arch=compute_35,code=sm_35;-gencode;arch=compute_30,code=compute_30
指示CUDA可以通過CMake的被檢測到。但是,這4個庫需要找不到。
我已經安裝了CUDA 7.5並在之前使用Visual Studio 2012進行了編譯。 CUDA樣品運行完美。所以我的CUDA庫應該正確安裝。
我不知道即使我手動設置這些值,我應該怎麼做?
我的規格:Windows 7的64位時,Visual Studio 2012,CMake的3.4.0,CUDA工具包7.5
您是否針對x86或x86_64架構進行配置?是否有理由不使用預編譯的二進制文件並使用4年的編譯器? – Drop
我不確定如何在CMAKE中選擇x86或x86_64。我認爲它正處於使用MSVC編譯整個項目的階段。至於VS2012,我現在使用它,它仍然正常工作。@ Drop –
不,在生成的項目中只會有一個平臺。如果您正在使用cmake-gui,您可以在首次單擊「配置」後彈出選擇工具鏈+平臺。您需要刪除cmake緩存(在菜單「文件」中),或者刪除構建傻瓜以便能夠再次選擇另一個平臺。 Nvidia只爲64位平臺提供'cufft'和'nppi'(檢查' \ lib \ '文件夾)。 –
Drop