原因:
cuda10
does not provide dynlink_nvcuvid.h
any more.
解决方法:
查看出错在modules/cudacodec/src/precomp.hpp
#if CUDA_VERSION >= 9000 #include <dynlink_nvcuvid.h> #else #include <nvcuvid.h> #endif
所以可以用头文件nvcuvid.h
下载 nvidia-sdk 将其中的
:nvcuvid.h copy 到 /usr/local/cuda/include/,同时将上面的代码改为
#if CUDA_VERSION >= 9000 && CUDA_VERSION < 10000 #include <dynlink_nvcuvid.h> #else #include <nvcuvid.h> #endif
或者copy到modules/cudacodec/src/下, 同时将上面代码改为:
#if CUDA_VERSION >= 9000 && CUDA_VERSION < 10000 #include <dynlink_nvcuvid.h> #else #include "nvcuvid.h" #endif
ref:
- https://github.com/opencv/opencv/issues/9544
- https://aur.archlinux.org/packages/opencv-cuda/