我使用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