gazebosim / gazebosim/gz-rendering
Undefined Symbol in libgz-rendering-7(or 9)-ogre2 on Ubuntu 22.04.4 LTS
- Dominant language
- C++
- Stars
- 81
- Forks
- 90
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 10
Description
## Environment
* OS Version: Ubuntu 22.04.4 LTS
* Source, on branch gz-rendering7, commit f95826fb52355bb4388c37b6bac6de8430224f98
* Rendering Plugin: Ogre2
* Ogre Versions:
```
libogre-next-2.3-dev/unknown,now 2.3.1-9osrf~jammy amd64 [installed]
libogre-next-2.3.0/unknown,now 2.3.1-9osrf~jammy amd64 [installed,automatic]
libogre-next-dev/jammy,now 2.2.5+dfsg3-0ubuntu2 amd64 [installed]
```
I am fairly positive this was caused by a change in the Hlms setupRootLayout interface in this commit of Ogre-next: https://github.com/OGRECave/ogre-next/commit/ea9c99a1ec0210396d48dd28b3bf266e778fd8f3#diff-ddd79ccfa4b6debd7d7161129f18e9b52196690bb885d32736be9bb72f403d1fR225
You can see setupRootLayout got a new signature which is not used in the gz-rendering codebase.
## Description
* Expected behavior: Gazebo should start and successfully load the libgz-rendering7-ogre2 engine plugin.
* Actual behavior: Gazebo crashes with:
```
[ruby $(which gz) sim-15] Error while loading the library [install/lib/gz-rendering-7/engine-plugins/libgz-rendering-ogre2.so]: install/lib/gz-rendering-7/engine-plugins/libgz-rendering-ogre2.so: undefined symbol: _ZN4Ogre7HlmsPbs15setupRootLayoutERNS_10RootLayoutE
[ruby $(which gz) sim-15] [GUI] [Err] [RenderEngineManager.cc:534] Failed to load plugin [gz-rendering-ogre2] : couldn't load library on path [install/lib/gz-rendering-7/engine-plugins/libgz-rendering-ogre2.so].
```
## Steps to reproduce
1. Try and build Gz-Garden from source on Ubuntu 22.04.4 LTS
2. Run `gz sim` and load up any simulation world.
Contributor guide
Research direction
Start by locating the Ogre2 rendering implementation that calls Hlms setupRootLayout, then compare its usage with the changed Ogre-next interface linked in the issue and the installed Ogre versions. Reproduce the Garden build and run on Ubuntu 22.04.4. Done means the Ogre2 plugin loads without the undefined-symbol error and a simulation starts successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100