Solutions to the problem of “symbol lookup error xxxxx, undefined symbol”

symbollookup error gxio_mpipe_init, undefined symbol problem.

symbollookup error _mpipe_init, undefined symbol problem. A large part of the problem with this issue is due to the fact that the dynamic library version is too old for the application to find the corresponding symbol.

However, analyzing Makefile files and updating the dynamic libraries on which gxio depends on the tilera platform will not solve this problem. Finally, the problem was solved by combining NM with LDD. The analysis steps are as follows:

  1. use LDD to test the dynamic libraries on which the application sequence depends
  2. use nm + grep to analyze whether gxio related dynamic libraries contain gxio_mpipe_init symbol
  3. 0

  4. 1 2 3 detection found that gxio related dynamic libraries do not contain gxio_mpipe_init, $nm libgxio.so | grep gxio_mpipe_init. but gxio static library (libgxio. A) contains gxio_mpipe_init
  5. modify the application’s Makefile , connect gxio’s static library to the application, compile test problem solved.
  6. the wish to cause the above problem is that the gxio dynamic library on which the application depends does not have a specific symbol corresponding to gxio_mpipe_init, causing a run-time problem.

summary: the reason for this problem is that the version of the dynamic library is too old, so the application cannot find the corresponding symbol. The problem can be solved by updating the dynamic library to support the exact symbol. Nm and LDD tools can be used in the analysis.

pay attention to the public, “running code tsai, access to more premium content

Read More: