CMake: CUDA libraries not found when compiling OpenCV

后端 未结 3 1049
逝去的感伤
逝去的感伤 2021-02-08 14:17

I am compiling OpenCV 3.0.0 with CUDA support on Windows, using CMAKE. When I click \"configure\", errors occur as following:

CMake Error: The following variable         


        
相关标签:
3条回答
  • 2021-02-08 14:42

    For the Linux, I solved by these step:

    (1) Check .so file in the lib folder,such as cuda7-cudnn3/lib64

    (2) Make symlink like sudo ln -s libcublas.so.7.5.18 libcublas.so

    For my case, I put correctly link in CMakeLists.txt and Makefile.config, but there wasn't a .so file.

    0 讨论(0)
  • 2021-02-08 14:47

    it is really related to version!!! if you want to compile with Cuda, when you cmake opencv2413, you will notice the makefile will try to find some third-party libs for supporting more functions:

    CUDA_TOOLKIT_ROOT_DIR C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0

    from that, I know I ever installed CUDA v9.0, but I still got this not found opencv_dep_CUDA_nppi_LIBRARY error, so I look for it in C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64, I did can not get it whose name is nppi.lib,so just for a test, i create a empty file and name it nppi.lib,as I guess, I worked, but in fact, it was not enough, the test can not help compiling opencv,morever, I found I had CUDA v8, and suprisly, I got the lib nppi.lib in C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64; so I change my environment path,

    CUDA_TOOLKIT_ROOT_DIR C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0 then I reconfigured it. it worked!!

    0 讨论(0)
  • Thanks to tips from Drop in the comments, I solved this problem. In order to close this question, I'm answering my own question.

    It's a "Win32 or x64" architecture problem. Since NVIDIA only provides cufft, nvblas, nppc, nppi, npps libs for x64, it's naturally impossible for CMAKE to find these libs for configuring a Win32 OpenCV library.

    My solution was to choose Visual Studio 11 Win64 instead of Visual Studio 11 as generator in CMAKE. So that CMAKE will automatically load libs from <CUDA_DIR>\lib\x64 rather than <CUDA_DIR>\lib\Win32. Further more, I also need to load all the other libs required by OpenCV in 64 bit version, such as OpenGL. I will also need to compile OpenCV in x64 architecture. All the code I'm going to write in the future will have to build and debug in x64 only.


    Should one have no trouble reading Chinese materials, I'm happy to provide a link towards a post regarding the complete guide on building OpenCV 3.0 on VS2012 with CUDA supports.

    0 讨论(0)
提交回复
热议问题