原因:
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/
