micro-ROS / micro-ROS/micro-ROS-Agent
microxrcedds_agent.so fails to link in cross environment
まだ誰も着手していません。
- 主要言語
- C++
- スター
- 201
- フォーク
- 111
- 平均マージ
- 1日 6時間
- マージ済み PR(30日)
- 10
説明
**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.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
Docker化されたクロスコンパイル手順と、libmicroxrcedds_agent.soを生成するビルドコマンドから始めてください。sysrootのライブラリではなく /opt/ros/humble/lib/libfastrtps.so.2.6.8 がリンカー入力に現れる理由を調査し、その後、報告されたターゲットアーキテクチャ向けにビルドを再現してください。エージェントがsysroot内のライブラリだけを使用して正常にリンクできれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cpp
- 領域
- build-system
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 42/100