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!

Any chance for a further response here? I’ve confirmed that:

  • libnvinfer.so 8.4.0 does not have reference to the symbol
  • libnvinfer.so 8.4.1 does reference the symbol

So this is new for 8.4.1. My question is simply this: What lib do I need to link to to get the definition?

This is currently blocking our project since the 8.4.0 docker image is now broken and 8.4.1 appears broken in this new way. Any help would be apprecaited!

Any hints here? I guess others are successfully linking to this libnvinfer.so.8.4.1 without issues?

Followup: Finally, flashing my Orin with the latest Jetpack resolved this issue. I guess the host system needs also have TensorRT 8.4.1 for this to work? That makes siome sense, though the error I was getting is still confusing…


Sorry for the late reply.
NVDLA library is integrated into the L4T OS.
So when you use an old JetPack with TensorRT 8.4.1, TensorRT cannot find the correct library which reports some symbol issue.


This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.