Compiling nvidia_video_sdk_6.0.1 samples -lnvidia-encode failure

Compiling the NVEncoder Sample:
g++ -m64 -o NvEncoder NvHWEncoder.o NvEncoder.o dynlink_cuda.o -L/usr/lib64 -lnvidia-encode -ldl
/usr/bin/ld: cannot find -lnvidia-encode
collect2: error: ld returned 1 exit status
Makefile:100: recipe for target ‘NvEncoder’ failed
make: *** [NvEncoder] Error 1

However running ldconfig -p:
ldconfig -p | grep nvidia
libvdpau_nvidia.so (libc6,x86-64, OS ABI: Linux 2.3.99) => /usr/lib/libvdpau_nvidia.so
libvdpau_nvidia.so (libc6, OS ABI: Linux 2.3.99) => /usr/lib32/libvdpau_nvidia.so
libnvidia-wfb.so.1 (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-wfb.so.1
libnvidia-wfb.so.1 (libc6) => /usr/lib32/nvidia-361/libnvidia-wfb.so.1
libnvidia-tls.so.361.42 (libc6,x86-64, hwcap: 0x8000000000000000, OS ABI: Linux 2.3.99) => /usr/lib/nvidia-361/tls/libnvidia-tls.so.361.42
libnvidia-tls.so.361.42 (libc6,x86-64, OS ABI: Linux 2.2.5) => /usr/lib/nvidia-361/libnvidia-tls.so.361.42
libnvidia-tls.so.361.42 (libc6, hwcap: 0x8000000000000000, OS ABI: Linux 2.3.99) => /usr/lib32/nvidia-361/tls/libnvidia-tls.so.361.42
libnvidia-tls.so.361.42 (libc6, OS ABI: Linux 2.2.5) => /usr/lib32/nvidia-361/libnvidia-tls.so.361.42
libnvidia-ptxjitcompiler.so.361.42 (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-ptxjitcompiler.so.361.42
libnvidia-ptxjitcompiler.so.361.42 (libc6) => /usr/lib32/nvidia-361/libnvidia-ptxjitcompiler.so.361.42
libnvidia-opencl.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libnvidia-opencl.so.1
libnvidia-opencl.so.1 (libc6) => /usr/lib/i386-linux-gnu/libnvidia-opencl.so.1
libnvidia-ml.so.1 (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-ml.so.1
libnvidia-ml.so.1 (libc6) => /usr/lib32/nvidia-361/libnvidia-ml.so.1
libnvidia-ml.so (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-ml.so
libnvidia-ml.so (libc6) => /usr/lib32/nvidia-361/libnvidia-ml.so
libnvidia-ifr.so.1 (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-ifr.so.1
libnvidia-ifr.so.1 (libc6) => /usr/lib32/nvidia-361/libnvidia-ifr.so.1
libnvidia-ifr.so (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-ifr.so
libnvidia-ifr.so (libc6) => /usr/lib32/nvidia-361/libnvidia-ifr.so
libnvidia-gtk3.so.361.42 (libc6,x86-64) => /usr/lib/libnvidia-gtk3.so.361.42
libnvidia-gtk2.so.361.42 (libc6,x86-64) => /usr/lib/libnvidia-gtk2.so.361.42
libnvidia-glsi.so.361.42 (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-glsi.so.361.42
libnvidia-glsi.so.361.42 (libc6) => /usr/lib32/nvidia-361/libnvidia-glsi.so.361.42
libnvidia-glcore.so.361.42 (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-glcore.so.361.42
libnvidia-glcore.so.361.42 (libc6) => /usr/lib32/nvidia-361/libnvidia-glcore.so.361.42
libnvidia-fbc.so.1 (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-fbc.so.1
libnvidia-fbc.so.1 (libc6) => /usr/lib32/nvidia-361/libnvidia-fbc.so.1
libnvidia-fatbinaryloader.so.361.42 (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-fatbinaryloader.so.361.42
libnvidia-fatbinaryloader.so.361.42 (libc6) => /usr/lib32/nvidia-361/libnvidia-fatbinaryloader.so.361.42
libnvidia-encode.so.1 (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-encode.so.1
libnvidia-encode.so.1 (libc6) => /usr/lib32/nvidia-361/libnvidia-encode.so.1
libnvidia-encode.so (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-encode.so
libnvidia-encode.so (libc6) => /usr/lib32/nvidia-361/libnvidia-encode.so

libnvidia-eglcore.so.361.42 (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-eglcore.so.361.42
libnvidia-eglcore.so.361.42 (libc6) => /usr/lib32/nvidia-361/libnvidia-eglcore.so.361.42
libnvidia-compiler.so.361.42 (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-compiler.so.361.42
… (skipped lines)
libEGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-361/libEGL.so.1
libEGL.so.1 (libc6) => /usr/lib32/nvidia-361/libEGL.so.1
libEGL.so (libc6,x86-64) => /usr/lib/nvidia-361/libEGL.so
libEGL.so (libc6) => /usr/lib32/nvidia-361/libEGL.so

Thus I do not see any reason why -lnvidia-encode is not found, as I can see it is present and can be located by ld in /usr/lib/nvidia-361/ see above.

Thanks,
ERIC

I figure it out, the Makefile is wrong the correct line should be something like:
g++ -m64 -o NvEncoder NvHWEncoder.o NvEncoder.o dynlink_cuda.o -L/usr/lib64 -lnvidia-encode -ldl -L/usr/lib/nvidia-361/

Replace /usr/lib/nvidia-361/ with the location of the nvidia-encode.so file

ERIC

You’re building for a 64-bit code:

g++ -m64 …

These appear to be 32-bit libraries:

libnvidia-encode.so.1 (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-encode.so.1
libnvidia-encode.so.1 (libc6) => /usr/lib32/nvidia-361/libnvidia-encode.so.1
libnvidia-encode.so (libc6,x86-64) => /usr/lib/nvidia-361/libnvidia-encode.so
libnvidia-encode.so (libc6) => /usr/lib32/nvidia-361/libnvidia-encode.so