Symbol Lookup Error When Running `glim_rosnode` on Jetson Nano (libglim.so: undefined symbol)
I'm installing GLIM on a Jetson Nano (Orin) following the official guides:
- Zenn blog: https://zenn.dev/koide3/articles/144e97133234e2#%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E8%A8%AD%E5%AE%9A
- GLIM dependencies installation instructions: https://koide3.github.io/glim/installation.html
In particular, I’m using the GLIM site to install the required dependencies, including GTSAM and gtsam_points. The dependencies built successfully without any errors.
However, when I attempt to run the ROS 2 node, I encounter the following runtime error:
Command
ros2 run glim_ros glim_rosnode --ros-args -p config_path:=$(realpath ~/config)
Error Output
[2025-06-19 15:09:28.756] [glim] [info] config_path: /home/nano/config
[2025-06-19 15:09:28.757] [glim] [info] load libodometry_estimation_gpu.so
/opt/ros/humble/lib/glim_ros/glim_rosnode: symbol lookup error: /opt/ros/humble/lib/libglim.so: undefined symbol: _ZN5gtsam21TangentPreintegrationC2ERKN5boost10shared_ptrINS_20PreintegrationParamsEEERKNS_7imuBias12ConstantBiasE
[ros2run]: Process exited with failure 127
System Info
- Platform: Jetson Nano (Orin)
- ROS 2 Version: Humble
- OS: Ubuntu 22.04 (JetPack version if applicable)
- GLIM commit/version: [please fill in]
- GTSAM installation: [via apt / from source] If from source, please specify the version/commit: [please fill in]
Troubleshooting Done
- Confirmed
libgtsam.sois present and linked vialdd /opt/ros/humble/lib/libglim.so - Rebuilt
gtsam_points,glim, andglim_rosfrom source - Ensured
LD_LIBRARY_PATHincludes the correct GTSAM library directory
Request Could you please confirm:
- The expected GTSAM version or commit hash to use with GLIM
- Any special linking flags or steps required when building
gtsam_pointsorglim
Thanks in advance for your help and for maintaining this great package!
I guess it is caused by mismatch of library versions. Combining binaries built yourself and installed via PPA may cause inconsistencies. If you installed GLIM from PPA, please avoid using self-built binaries.
- The commit (GLIM :
1591f04, gtsam_points :4d7589d) and earlier use GTSAM 4.2a9, and commits after that use GTSAM 4.3a0. (Note that PPA binaries have not been updated yet, and they still use GTSAM 4.2a9) - No, usually only the CUDA flag is required to be set.