Не может статически связать с libnvcuvid.so
Я пытаюсь использовать новейший NVIDIA Video SDK, в частности - его NVDEC (аппаратный видеодекодер lib). Я некоторое время использовал предыдущую версию, и она загружала указатели функций во время выполнения из libnvcuvid.so, который на моей машине находится в:
/ USR / Библиотека / 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 нет загрузки указателей на библиотечные функции во время выполнения, но все методы API помечены как extern
и статическое связывание используется. На Windows они предоставляют nvcuvid.lib. Но в Linux только вышеупомянутые SO. Моя IDE ориентирована на этот каталог (трижды проверено; если я удаляю путь, компоновщик жалуется, что не может найти библиотеку) правильно, также я помещаю libnvcuvid.so
на компоновщик точно так же, как я поставил cuda.so
а также cudart.so
там же для статической компоновки против CUDA API. Но я все еще получаю
"неопределенные ссылки"
для всех функций cuvid, объявленных в последнем заголовке. Как видите, моя версия драйверов также актуальна (для 8.1 требуется не менее 390).
Почему это не ссылка?
ОБНОВЛЕНИЕ (компоновщик):
/ 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.....