2.76 missing make install

darek
Posts: 3
Joined: Mon Mar 01, 2010 10:37 pm

2.76 missing make install

Post by darek »

I have two problems with compiling 2.76 on Kubuntu 9.10:

1. cmake . -G "Unix Makefiles" doesn't generate 'install' in Makefile, but demos works fine

2. Can't compile shared libraries:

Code: Select all

../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::solveGroupCacheFriendlyFinish(btCollisionObject**, int, btPersistentManifold**, int, btTypedConstraint**, int, btContactSolverInfo const&, btIDebugDraw*, btStackAlloc*)'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::convertContact(btPersistentManifold*, btContactSolverInfo const&)'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `typeinfo for btSequentialImpulseConstraintSolver'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::solveGroupCacheFriendlyIterations(btCollisionObject**, int, btPersistentManifold**, int, btTypedConstraint**, int, btContactSolverInfo const&, btIDebugDraw*, btStackAlloc*)'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::btSequentialImpulseConstraintSolver()'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btTypedConstraint::serialize(void*, btSerializer*) const'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::reset()'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::solveGroupCacheFriendlySplitImpulseIterations(btCollisionObject**, int, btPersistentManifold**, int, btTypedConstraint**, int, btContactSolverInfo const&, btIDebugDraw*, btStackAlloc*)'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::solveGroup(btCollisionObject**, int, btPersistentManifold**, int, btTypedConstraint**, int, btContactSolverInfo const&, btIDebugDraw*, btStackAlloc*, btDispatcher*)'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::~btSequentialImpulseConstraintSolver()'
collect2: ld returned 1 exit status
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: 2.76 missing make install

Post by Erwin Coumans »

Installation of Bullet is not supported (by us), so the feature depends on contributors.

You might want to try enabling the INSTALL_LIBS option (see root level CMakeLists.txt)
We link Bullet statically for the demos. For shared libraries you might have to enable dependencies between libraries? BulletMultiThreaded depends on BulletDynamics, BulletCollision and LinearMath (in that order).

If you can make it work, can you contribute the changes back?
Thanks,
Erwin
darek
Posts: 3
Joined: Mon Mar 01, 2010 10:37 pm

Re: 2.76 missing make install

Post by darek »

For static libraries - enabling INSTALL_LIBS in the CMakeLists.txt works ! Thanks.

Unfortunately I don't know anything about cmake build system, so I have no clue how to enable dependencies for shared libraries.
esingla
Posts: 8
Joined: Sat Mar 13, 2010 8:00 am

Re: 2.76 missing make install

Post by esingla »

I had the similar problem and then tried by enabling INSTALL_LIBS in main CMakeLists.tex.
However, the errors, as below, are still there. I am naive at linux systems and so, it would be great if you tell me what exactly to be done for installing Bullet.

Thank you

../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::solveGroupCacheFriendlyFinish(btCollisionObject**, int, btPersistentManifold**, int, btTypedConstraint**, int, btContactSolverInfo const&, btIDebugDraw*, btStackAlloc*)'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::convertContact(btPersistentManifold*, btContactSolverInfo const&)'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `typeinfo for btSequentialImpulseConstraintSolver'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::solveGroupCacheFriendlyIterations(btCollisionObject**, int, btPersistentManifold**, int, btTypedConstraint**, int, btContactSolverInfo const&, btIDebugDraw*, btStackAlloc*)'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::btSequentialImpulseConstraintSolver()'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btTypedConstraint::serialize(void*, btSerializer*) const'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::reset()'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::solveGroupCacheFriendlySplitImpulseIterations(btCollisionObject**, int, btPersistentManifold**, int, btTypedConstraint**, int, btContactSolverInfo const&, btIDebugDraw*, btStackAlloc*)'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::solveGroup(btCollisionObject**, int, btPersistentManifold**, int, btTypedConstraint**, int, btContactSolverInfo const&, btIDebugDraw*, btStackAlloc*, btDispatcher*)'
../../src/BulletMultiThreaded/libBulletMultiThreaded.so: undefined reference to `btSequentialImpulseConstraintSolver::~btSequentialImpulseConstraintSolver()'
collect2: ld returned 1 exit status
make[2]: *** [Demos/MiniCL_VectorAdd/AppMiniCLVectorAdd] Error 1
make[1]: *** [Demos/MiniCL_VectorAdd/CMakeFiles/AppMiniCLVectorAdd.dir/all] Error 2
make: *** [all] Error 2
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: 2.76 missing make install

Post by Erwin Coumans »

This should be fixed in latest svn trunk.

In Bullet/src/BulletMultiThreaded/CMakeLists.txt add BulletDynamics so it looks like:

Code: Select all

IF (BUILD_SHARED_LIBS)
	TARGET_LINK_LIBRARIES(BulletMultiThreaded BulletDynamics BulletCollision)
ENDIF (BUILD_SHARED_LIBS)
Can you try this?
Thanks,
Erwin
esingla
Posts: 8
Joined: Sat Mar 13, 2010 8:00 am

Re: 2.76 missing make install

Post by esingla »

Thank you for your reply. I didnt need to add this, and no error came in installing.
However, I am not sure if everything went well, as no message line successful installing came.
Now I need to test some examples.....pls let menow the right way to do so. I need such preliminary help, as I still not feel confident in linux things.
Thank you
littleblackdog
Posts: 1
Joined: Sat Mar 27, 2010 7:34 pm

Re: 2.76 missing make install

Post by littleblackdog »

Hi.

Here is my humble feedback : I was compiling Bullet from source ...

Code: Select all

[ 99%] Building CXX object src/BulletMultiThreaded/CMakeFiles/BulletMultiThreaded.dir/MiniCLTask/MiniCLTask.o
Linking CXX shared library libBulletMultiThreaded.so
[ 99%] Built target BulletMultiThreaded
Linking CXX executable AppMultiThreadedDemo
[ 99%] Built target AppMultiThreadedDemo
Scanning dependencies of target AppMiniCLVectorAdd
Linking CXX executable AppMiniCLVectorAdd
The next lines of the log were exactly as in esingla's post.

So, I just tried to update src/BulletMultiThreaded/CMakeLists.txt as advised, and now it seems to work (at least, Bullet dynamic libraries just appeared in my /usr/local/lib directory ).

So, thank you Erwin ! Now I'm ready to "work" :)