micro-ROS / micro-ROS/micro-ROS-Agent

microxrcedds_agent.so fails to link in cross environment

Open
#258 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
201
Forks
111
Avg merge
1d 6h
Merged PRs (30d)
10

Description

**Describe the bug**
I tried using a cross compile workflow for Micro ROS Agent and it has linker errors.

**To Reproduce**
Steps to reproduce the behaviour:
1. Clone repo on this branch and follow the dockerized instructions: https://github.com/Ryanf55/x-ros/tree/micro-ros-agent
2. Compile the micro ros agent as explained
3. Observe the following error:

```
# [ 2%] Linking CXX shared library libmicroxrcedds_agent.so
# /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /opt/ros/humble/lib/libfastrtps.so.2.6.8: error adding symbols: file in wrong format
```

The linker is incorrectly trying to link to /opt/ros/humble/lib/libfastrtps.so.2.6.8. It should be linking to the shared library in the sysroot, not the host.

**Expected behaviour**
Successful compilation in a sysroot and linkage only to libraries in the sysroot.

**System information (please complete the following information):**
- OS: Host OS Ubuntu 22
- ROS 2 humble on host OS
- Target OS: Ubuntu 22

**Additional context**

I have ROS 2 humble installed on the host OS. MicroROS should compile in the sysroot and ignore all host libraries.
Because it does not ignore host libraries, it is finding libraries of the wrong architecture.

Contributor guide

Open the contributing guide

Research direction

Start with the dockerized cross-compilation instructions and the build command that produces libmicroxrcedds_agent.so. Inspect why /opt/ros/humble/lib/libfastrtps.so.2.6.8 appears in the linker inputs instead of the sysroot library, then reproduce the build for the reported target architecture. Done means the agent links successfully using only libraries from the sysroot.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.