ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
The symbol is listed by nm
, but as a U
which means undefined:
https://sourceware.org/binutils/docs/binutils/nm.html
You probably declared the class, but for some reason did not define the class, there for your shared library will be looking for the definition of the class, usually resulting in a T
from nm
, from another library at link time. This error has likely eluded you because the default behavior for shared libraries on Linux when a symbol is missing at compile time is to assume it is provided at runtime. At runtime the symbol is not there, which is why you have your error.
You can try using the --no-allow-shlib-undefined
linker flag to find it at compile time, but you can also just look at your source code and try to figure out the issue. If you post your package on GitHub (or something similar) we can look at it in more detail. Either way, this is likely a C++ problem.