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
手机扫一扫
移动阅读更方便
你可能感兴趣的文章