Undefined reference to `nvdla::IProfile::setUseSoftMaxOptz


I am using the nvcr.io/nvidia/l4t-tensorrt:r8.4.1-runtime docker image on Orin. Previously I was using 8.4.0 and all was well. However, now when I compile my stuff I get:

/usr/bin/ld: /usr/lib/aarch64-linux-gnu/libnvinfer.so.8: undefined reference to `nvdla::IProfile::setUseSoftMaxOptz(bool)'
/usr/bin/ld: /usr/lib/aarch64-linux-gnu/libnvinfer.so.8: undefined reference to `nvdla::INetwork::addSlice(nvdla::ITensor*, nvdla::Weights, nvdla::Weights, nvdla::Weights, nvdla::Weights, nvdla::SliceLayerMode)'

Any ideas what would cause this? I have searched for these symbols everywhere but only see them in libnvinfer so I don’t know what else to link to…


It is a DLA symbol, a backend library used by the TensorRT.

Since it’s a runtime container, it doesn’t include the header for developing.
Did you compile the application with nvcr.io/nvidia/l4t-tensorrt:r8.4.0-runtime successfully?
If yes, did you mount the required headers manually?


Thank you for the response.

A few things about this comment:

  • I have also tried with r8.4.1.5-devel and had the same result
  • As you can see, this is a linker error, not a missing header error; which headers are you wondering about?
  • I’m doing an apt install of libcudnn8 libcudnn8-dev cuda tensorrt which give me /usr/include/aarch64-linux-gnu/NvInfer.h among others…

Which so defines the offending symbols?

Thank you!