无法静态链接libn​​vcuvid.so

时间:2018-05-22 17:23:13

标签: c++ ubuntu nvidia drivers nvdec

我正在尝试使用最新的NVIDIA Video SDK,特别是它的NVDEC(硬件视频解码器库)。我一直在使用以前的版本,它在运行时从libnvcuvid.so加载函数指针,这在我的机器上位于:

  

/ usr / lib中/ NVIDIA-396 /

它包含以下相关项目:

  

/usr/lib/nvidia-396/libnvcuvid.so

     

/usr/lib/nvidia-396/libnvcuvid.so.1

     

/usr/lib/nvidia-396/libnvcuvid.so.396.18

现在,在最新的SDK 8.1中,运行时没有加载库函数指针,但使用了标记为extern和静态链接的所有API方法。在Windows上,他们提供nvcuvid.lib。但是在Linux上,只有上面提到的SO。我的IDE定位该目录(三重检查;如果我删除路径,链接器抱怨它无法找到lib),我也将libnvcuvid.so放在链接器上的方式与放置{{{ 1}}和cuda.so在静态链接和CUDA API的相同位置。但我还是得到了

  

“未定义参考”

用于在最新标头中声明的所有cuvid函数。如您所见,我的驱动程序版本也是最新的(8.1至少需要390)。

为什么它没有链接?

UPDATE(链接器):

  

/ usr / bin / g ++ -o bin / xxxxx_xxx_d @“xxxxx_xxx.txt”-L。 -LDebug   -L / usr / lib / nvidia-396 -L / usr / local / cuda-9.1 / lib64 -lcuda -lcudart -lnvcuvid .....

0 个答案:

没有答案