Skip to content
This repository has been archived by the owner on Feb 3, 2025. It is now read-only.

Compilation error when ogre 1.9 and libcegui-mk2-0.7.6 are installed #994

Closed
osrf-migration opened this issue Jan 7, 2014 · 16 comments
Closed
Labels

Comments

@osrf-migration
Copy link

Original report (archived issue) by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


Discovered while reviewing pull request #883:

I can reproduce with ogre 1.9.0 built from source and the ogre 1.7.4 deb installed. I also have CEGUI 0.7.6 installed, and I get the following compilation error when testing this pull request:

$ make server_fixture
[100%] Building CXX object test/CMakeFiles/server_fixture.dir/ServerFixture.cc.o
In file included from /home/scpeters/ws/gazebo_ogre/src/gazebo/gazebo/rendering/cegui.h:28:0,
                 from /home/scpeters/ws/gazebo_ogre/src/gazebo/gazebo/rendering/GUIOverlay.hh:25,
                 from /home/scpeters/ws/gazebo_ogre/build_isolated/gazebo/devel/gazebo/rendering/rendering.hh:15,
                 from /home/scpeters/ws/gazebo_ogre/src/gazebo/test/ServerFixture.hh:47,
                 from /home/scpeters/ws/gazebo_ogre/src/gazebo/test/ServerFixture.cc:21:
/usr/include/CEGUI/RendererModules/Ogre/CEGUIOgreRenderer.h:57:7: error: using typedef-name ‘Ogre::TexturePtr’ after ‘class’
In file included from /home/scpeters/ws/gazebo_ogre/devel_isolated/ogre/include/OGRE/Ogre.h:31:0,
                 from /home/scpeters/ws/gazebo_ogre/src/gazebo/gazebo/rendering/ogre_gazebo.h:22,
                 from /home/scpeters/ws/gazebo_ogre/src/gazebo/gazebo/rendering/Conversions.hh:20,
                 from /home/scpeters/ws/gazebo_ogre/build_isolated/gazebo/devel/gazebo/rendering/rendering.hh:8,
                 from /home/scpeters/ws/gazebo_ogre/src/gazebo/test/ServerFixture.hh:47,
                 from /home/scpeters/ws/gazebo_ogre/src/gazebo/test/ServerFixture.cc:21:
/home/scpeters/ws/gazebo_ogre/devel_isolated/ogre/include/OGRE/OgrePrerequisites.h:319:32: note: ‘Ogre::TexturePtr’ has a previous declaration here

I'm guessing there's an incompatibility between CEGUI 0.7.6 and OGRE 1.9.0, which wouldn't affect users with deb installs of OGRE and CEGUI, but could have problems with source installs.

Note that removing the libcegui debs causes drcsim and gazebo-current to be uninstalled as well.

@osrf-migration
Copy link
Author

Original comment by Jose Luis Rivero (Bitbucket: Jose Luis Rivero, GitHub: j-rivero).


  • set assignee_account_id to "557058:155a32e2-420c-4d50-98e0-0e722f63f906"
  • set assignee to "jrivero (Bitbucket: jrivero, GitHub: j-rivero)"

@osrf-migration
Copy link
Author

Original comment by Jose Luis Rivero (Bitbucket: Jose Luis Rivero, GitHub: j-rivero).


Indeed, it was an incompatibility between ogre 1.9 and cegui probably lower than 0.8. Fixed at this commit targeted to 0.8 branch.

We could:

  • Make something ugly to make it works. Check 4bf6535 out.
  • Declare the incompatibility in our SearchForStuff for cegui and ogre 1.9
  • Release a patched cegui-0.7.6 deb package backporting the fix

@osrf-migration
Copy link
Author

Original comment by Ian Chen (Bitbucket: Ian Chen, GitHub: iche033).


Do we need to provide a more specific check for cegui versions >= 0.8.3 ?

0.8.2 still has the issue: http://cegui.org.uk/forum/viewtopic.php?f=10&t=6555

@osrf-migration
Copy link
Author

Original comment by Jose Luis Rivero (Bitbucket: Jose Luis Rivero, GitHub: j-rivero).


The pull request is from 2013-08-06 and 0.8.2 is from June 2013. So probably yes, 0.8.3 if ogre is 1.9.

@osrf-migration
Copy link
Author

Original comment by Ian Chen (Bitbucket: Ian Chen, GitHub: iche033).


I am testing the issue_996_3.1_cegui_ogre_fix branch. Do you get this?

#!c++

../gazebo/rendering/libgazebo_rendering.so.3.0.0: undefined reference to `CEGUI::OgreRenderer::createTexture(Ogre::SharedPtr<Ogre::Texture>&, bool)'

@osrf-migration
Copy link
Author

Original comment by Jose Luis Rivero (Bitbucket: Jose Luis Rivero, GitHub: j-rivero).


Yes. Let me fix that.

@osrf-migration
Copy link
Author

Original comment by Jose Luis Rivero (Bitbucket: Jose Luis Rivero, GitHub: j-rivero).


Umm all my tries to hack on the new symbol defined by using the typedef on Ogre::MaterialPtr ended up in problems when linked against the library, which was built without the typedef. So, I'm afraid our option 1, that manual patching is not an option.

@osrf-migration
Copy link
Author

Original comment by Ian Chen (Bitbucket: Ian Chen, GitHub: iche033).


instead of declaring incompatibility, we could just have an ifdef around the AttachCameraToImage function when the system has conflicting ogre and cegui versions. I think that function is not essential for GUIOverlay to work so we could live without it. But let's confirm with @nkoenig first.

@osrf-migration
Copy link
Author

Original comment by Nate Koenig (Bitbucket: Nathan Koenig).


The ifdef around AttachCameraToImage is a good approach.

@osrf-migration
Copy link
Author

Original comment by Nate Koenig (Bitbucket: Nathan Koenig).


Here is some more info and a proposal.

  1. libogre-1.8 works with cegui-0.7.6

  2. libogre-1.9 works with >=cegui-0.8.2

  3. libogre-1.9 is only available via debian on Trusty

  4. On Trusty, the cegui debian pulls in libogre-1.8.

So, I believe the only way to get libogre-1.9 + cegui-(0.7.6/0.8.2) is to compile one or both from source.

We can modify gazebo's cmake to work only for the following two combinations:

  1. libogre-1.8 and cegui-0.7.6

  2. libogre-1.9 and >=cegui-0.8.2

I'll proceed with this solution unless someone notices a problem.

@osrf-migration
Copy link
Author

Original comment by Nate Koenig (Bitbucket: Nathan Koenig).


Correction, you can install libogre-1.9 and cegui-0.7.6 on trusty. However, I think the above solution will still work.

@osrf-migration
Copy link
Author

Original comment by Ian Chen (Bitbucket: Ian Chen, GitHub: iche033).


small correction, I think the fix is released in cegui 0.8.3 so:

libogre-1.9 works with >=cegui-0.8.3

@osrf-migration
Copy link
Author

Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


pull request #1354

@osrf-migration
Copy link
Author

Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


  • changed state from "new" to "resolved"

pull request #1354

@osrf-migration
Copy link
Author

Original comment by Nate Koenig (Bitbucket: Nathan Koenig).


  • set version to "all"

@osrf-migration
Copy link
Author

Original comment by Nate Koenig (Bitbucket: Nathan Koenig).


  • changed state from "resolved" to "closed"

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

1 participant