NVIDIA/NvPipe

libNvPipe.so.1.0.0: undefined reference to `cuvidReconfigureDecoder', 'cuvidGetDecodeStatus'

notoriousturtle opened this issue · 1 comments

Basically it compiles NvPipe, but fails when compiling the examples. Am I doing it wrong? Any other output you'd like to see?

Running on Cuda 9.0. Added the following to NvPipe/CMakeLists.txt (at the top) since I was getting warnings about cmake not being able to find them:

SET(EGL_LIBRARY "/usr/lib/nvidia-384/libEGL.so")
SET(EGL_opengl_LIBRARY "/usr/lib/nvidia-384/libOpenGL.so")
SET(EGL_INCLUDE_DIR "/usr/lib/nvidia-384/")

When trying to build:

t@mpt:~/build$ nvidia-smi
Mon Jan 28 20:06:16 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.130                Driver Version: 384.130                   |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro 4000         Off  | 00000000:03:00.0 Off |                  N/A |
| 40%   41C    P0    N/A /  N/A |      0MiB /  1984MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
t@mpt:~/build$ export PATH=/usr/local/cuda-9.1/bin${PATH:+:${PATH}}
t@mpt:~/build$ export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
t@mpt:~/build$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85
t@mpt:~/build$ cd ..
t@mpt:~$ rm -rf build/
t@mpt:~$ mkdir build && cd build
t@mpt:~/build$ cmake /home/t/NvPipe/
-- The CXX compiler identification is GNU 5.4.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Setting build type to 'Release' as none was specified.
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found CUDA: /usr/local/cuda-9.1 (found version "9.1")
-- Found EGL: /usr/lib/nvidia-384/libEGL.so
-- Could NOT find GLEW (missing:  GLEW_INCLUDE_DIR GLEW_LIBRARY)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/t/build
t@mpt:~/build$ make
[  8%] Building NVCC (Device) object CMakeFiles/NvPipe.dir/src/NvCodec/Utils/NvPipe_generated_ColorSpace.cu.o
[ 16%] Building NVCC (Device) object CMakeFiles/NvPipe.dir/src/NvPipe_generated_NvPipe.cu.o
/home/t/NvPipe/src/NvCodec/NvEncoder/nvEncodeAPI.h(1252): warning: signed bit field of length 1

/home/t/NvPipe/src/NvCodec/NvEncoder/nvEncodeAPI.h(1254): warning: signed bit field of length 1

/home/t/NvPipe/src/NvCodec/NvEncoder/nvEncodeAPI.h(1255): warning: signed bit field of length 1

/home/t/NvPipe/src/NvPipe.cu(402): warning: integer conversion resulted in a change of sign

/home/t/NvPipe/src/NvPipe.cu(407): warning: integer conversion resulted in a change of sign

/home/t/NvPipe/src/NvPipe.cu(572): warning: integer conversion resulted in a change of sign

/home/t/NvPipe/src/NvPipe.cu(573): warning: integer conversion resulted in a change of sign

/home/t/NvPipe/src/NvCodec/NvEncoder/nvEncodeAPI.h(1252): warning: signed bit field of length 1

/home/t/NvPipe/src/NvCodec/NvEncoder/nvEncodeAPI.h(1254): warning: signed bit field of length 1

/home/t/NvPipe/src/NvCodec/NvEncoder/nvEncodeAPI.h(1255): warning: signed bit field of length 1

/home/t/NvPipe/src/NvPipe.cu(402): warning: integer conversion resulted in a change of sign

/home/t/NvPipe/src/NvPipe.cu(407): warning: integer conversion resulted in a change of sign

/home/t/NvPipe/src/NvPipe.cu(572): warning: integer conversion resulted in a change of sign

/home/t/NvPipe/src/NvPipe.cu(573): warning: integer conversion resulted in a change of sign

Scanning dependencies of target NvPipe
[ 25%] Building CXX object CMakeFiles/NvPipe.dir/src/NvCodec/NvEncoder/NvEncoder.cpp.o
[ 33%] Building CXX object CMakeFiles/NvPipe.dir/src/NvCodec/NvEncoder/NvEncoderCuda.cpp.o
[ 41%] Building CXX object CMakeFiles/NvPipe.dir/src/NvCodec/NvDecoder/NvDecoder.cpp.o
[ 50%] Linking CXX shared library libNvPipe.so
[ 50%] Built target NvPipe
Scanning dependencies of target nvpExampleFile
[ 58%] Building CXX object CMakeFiles/nvpExampleFile.dir/examples/file.cpp.o
[ 66%] Linking CXX executable nvpExampleFile
libNvPipe.so.1.0.0: undefined reference to `cuvidReconfigureDecoder'
libNvPipe.so.1.0.0: undefined reference to `cuvidGetDecodeStatus'
collect2: error: ld returned 1 exit status
CMakeFiles/nvpExampleFile.dir/build.make:100: recipe for target 'nvpExampleFile' failed
make[2]: *** [nvpExampleFile] Error 1
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/nvpExampleFile.dir/all' failed
make[1]: *** [CMakeFiles/nvpExampleFile.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
t@mpt:~/build$

Hi,

NvPipe is currently based on Video Codec SDK 8.2, which requires the driver 396.24 (Linux) / 397.93 (Windows) or newer. More details here.

Hope that helps!
Tim