Undefined symbol: nvds_copy_obj_meta


I am developing DeepStream plugins for two target devices:

  • Jetson TX2 with following setup:

    • Jetpack 4.3
    • DeepStream 4.0.2
    • CUDA 10.0
    • CUDNN 7.6.3
    • TensorRT 6.0.1
    • GStreamer 1.14.5
  • dGPU GeForce RTX 2080 Ti with following setup:

    • DeepStream 4.0.2
    • CUDA 10.2
    • CUDNN 7.6.5
    • TensorRT 6.0.1
    • GStreamer 1.14.5

In one of my plugins I intend to use “nvds_copy_obj_meta” function from “nvdsmeta.h” lib. For consistency I use the very same code and CMake file on both target devices. On the second device (dGPU) code runs smoothly - “nvds_copy_obj_meta” function works without any issue, however, on the first device (TX2) plugin builds with no errors, but during the creation of the element in the pipeline I am getting following error:

(gst-plugin-scanner:10951): GStreamer-WARNING **: 13:06:17.149: 
Failed to load plugin '/tmp/tmp.VX9VTWv0Y1/cmake-build-debug-tx2-2-remote-host-forwarded/libmy_plugin.so':
undefined symbol: nvds_copy_obj_meta
My-Plugin creation failed.

I would be grateful for any sort of help. Thanks in advance!

Can you run test1 sample sucessfully? which needs nvdsmeta.h

Hi @amycao,

deepstream-test1 app run successfully. In fact I am using quite a lot of functions from “nvdsmeta.h”, like “nvds_add_" or "nvds_acquire_”, in other plugins and those run smoothly as well.

Since test1 sample and other plugins which use functions from “nvdsmeta.h”, like “nvds_add_ " or "nvds_acquire_
work well, sounds like your environments is ok, so please check the code which report the error.

You need to link metadata lib with the code.

1 Like