Latest SVN Is Broken?

debio264

09-09-2009 18:54:28

I checked out the latest revision of OgreBullet from the OgreAddons SVN repo. I'm on Linux, and I couldn't figure out how to build the latest release (the readme says there should be Linux build scripts in there, but I can't seem to find them), and using SVN seems to be a common recommendation here anyway.
The build error was this:
Utils/OgreBulletCollisionsMeshToShapeConverter.cpp:31:27: error: ConvexBuilder.h: No such file or directory
Utils/OgreBulletCollisionsMeshToShapeConverter.cpp:363: error: ‘ConvexDecomposition’ has not been declared
Utils/OgreBulletCollisionsMeshToShapeConverter.cpp:363: error: expected ‘{’ before ‘ConvexDecompInterface’
Utils/OgreBulletCollisionsMeshToShapeConverter.cpp:364: error: invalid type in declaration before ‘{’ token
Utils/OgreBulletCollisionsMeshToShapeConverter.cpp:364: warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x
Utils/OgreBulletCollisionsMeshToShapeConverter.cpp:367: error: expected primary-expression before ‘public’
Utils/OgreBulletCollisionsMeshToShapeConverter.cpp:367: error: expected ‘}’ before ‘public’
Utils/OgreBulletCollisionsMeshToShapeConverter.cpp:367: error: expected ‘,’ or ‘;’ before ‘public’
Utils/OgreBulletCollisionsMeshToShapeConverter.cpp:382: error: expected unqualified-id before ‘)’ token
Utils/OgreBulletCollisionsMeshToShapeConverter.cpp:394: error: ‘virtual’ outside class declaration
Utils/OgreBulletCollisionsMeshToShapeConverter.cpp:394: error: variable or field ‘ConvexDecompResult’ declared void
Utils/OgreBulletCollisionsMeshToShapeConverter.cpp:394: error: ‘ConvexDecomposition’ has not been declared
Utils/OgreBulletCollisionsMeshToShapeConverter.cpp:394: error: ‘result’ was not declared in this scope
make[3]: *** [OgreBulletCollisionsMeshToShapeConverter.lo] Error 1


I'm not sure whether this is the result of a partial refactor or if that file is still supposed to be present.
Will this get fixed, am I somehow an idiot who's doing it wrong, or should I just go back to a working revision?

EDIT:
Oh, and my build steps were...

./autogen.sh
./configure
make
[make install] # I didn't get this far


I'm pretty sure this is the correct procedure, but I could be wrong.

dermont

10-09-2009 06:59:00

For your build you need to add the include path to Extras/ConvexDecomposition via CXXFLAGS. See the following thread for an example.

viewtopic.php?f=12&t=9202

debio264

10-09-2009 18:52:15

Thanks, that got everything working.

Hannofcart

11-11-2009 15:46:04

Again, I hate to raise hairs by saying SVNs broken but I think that in this case it might be, since it seems to be complaining about not finding a function prototype in the bullet code. Can someone please confirm? I am using Bullet-2.75 with OgreBullet trunk. Is the Bullet version too new for ogreBullet svn support? If so, which version of Bullet must I use (i.e. other people have got working so far)? I believe SVN is not compatible with Bullet-2.68 at all ( which is the version that the wiki says is the latest supported.)

Here is the relevant error from make:

g++ -DHAVE_CONFIG_H -I. -I../.. -DOGRE_GUI_GLX -DOGRE_CONFIG_LITTLE_ENDIAN -I/usr/local/include -I/usr/local/include/OGRE -I/usr/local/include/bullet -I../include -g -O2 -MT OgreBulletCollisionsMultiSphereShape.lo -MD -MP -MF .deps/OgreBulletCollisionsMultiSphereShape.Tpo -c Shapes/OgreBulletCollisionsMultiSphereShape.cpp -fPIC -DPIC -o .libs/OgreBulletCollisionsMultiSphereShape.o
Shapes/OgreBulletCollisionsMultiSphereShape.cpp: In constructor ‘OgreBulletCollisions::MultiSphereCollisionShape::MultiSphereCollisionShape(const Ogre::Vector3&, const Ogre::Vector3*, const Ogre::Real*, int)’:
Shapes/OgreBulletCollisionsMultiSphereShape.cpp:59: error: no matching function for call to ‘btMultiSphereShape::btMultiSphereShape(btVector3, btVector3*, const btScalar*, int&)’
/usr/local/include/bullet/BulletCollision/CollisionShapes/btMultiSphereShape.h:33: note: candidates are: btMultiSphereShape::btMultiSphereShape(const btVector3*, const btScalar*, int)
/usr/local/include/bullet/BulletCollision/CollisionShapes/btMultiSphereShape.h:27: note: btMultiSphereShape::btMultiSphereShape(const btMultiSphereShape&)
make[3]: *** [OgreBulletCollisionsMultiSphereShape.lo] Error 1
make[3]: Leaving directory `/home/balajee/ogre/ogreBullet/ogrebullet/Collisions/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/balajee/ogre/ogreBullet/ogrebullet/Collisions'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/balajee/ogre/ogreBullet/ogrebullet'
make: *** [all] Error 2

debio264

12-11-2009 04:56:57

This question was raised at viewtopic.php?f=12&t=11562 and the solution was just to delete the extra constructor argument because the API no longer requires it.

Hannofcart

12-11-2009 05:17:38

Yes, thank you. I should have looked a little closer at the search results. I am sorry for the bother.

In any case I compiled Bullet 2.74 and compiled OgreBullet against it, and it compiled perfectly.