【小记录】利用cuvid库做视频解码,运行出现"dlopen "libnvcuvid.so" failed!"
阅读原文时间:2023年07月08日阅读:2

1.查看源码:
/Video_Codec_SDK_8.0.14/Samples/common/src/dynlink_nvcuvid.cpp
 其中的LOAD_LIBRARY函数的源码如下:

1 #elif defined(__unix__) || defined(__APPLE__) || defined(__MACOSX)
2
3 #include
4
5 static char __DriverLibName[] = "libnvcuvid.so";
6
7 typedef void *DLLDRIVER;
8
9 static CUresult LOAD_LIBRARY(DLLDRIVER *pInstance)
10 {
11 *pInstance = dlopen(__DriverLibName, RTLD_NOW);
12
13 if (*pInstance == NULL)
14 {
15 printf("dlopen \"%s\" failed!\n", __DriverLibName);
16 return CUDA_ERROR_UNKNOWN;
17 }
18
19 return CUDA_SUCCESS;
20 }

看来是写死了so的名字

2.

cd /usr/local/nvidia/lib64

ls -l libnvcuvid*

lrwxrwxrwx 1 995 991 20 May 9 2018 libnvcuvid.so.1 -> libnvcuvid.so.384.81
-rwxr-xr-x 1 root root 2403472 May 8 2018 libnvcuvid.so.384.81

没有这个名字的so

3. 解决
/usr/local/nvidia/lib64
sudo -s
ln -s libnvcuvid.so.384.81 libnvcuvid.so

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章