Error Compiling Bullet on Linux

brockw
Posts: 1
Joined: Mon Dec 21, 2009 6:44 am

Error Compiling Bullet on Linux

Post by brockw »

Hi I need to install Bullet on Linux. both debug and release libs.
I did this but got errors:

cmake . -G "Unix Makefiles" -DBUILD_EXTRAS=off -DBUILD_DEMOS=on -DCMAKE_BUILD_TYPE=Debug
make
sudo make install

Linking CXX executable AppAllBulletDemos
/usr/bin/ld: cannot find -lBulletColladaConverter
collect2: ld returned 1 exit status
make[2]: *** [Demos/AllBulletDemos/AppAllBulletDemos] Error 1
make[1]: *** [Demos/AllBulletDemos/CMakeFiles/AppAllBulletDemos.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: Error Compiling Bullet on Linux

Post by Erwin Coumans »

The demos depend on the extras, so either enable the extras or disable the demos.

By the way, 'installing' Bullet systemwide is not recommended: the recommended way is to embed Bullet in your program and link statically.
Cheers,
Erwin
elLolo
Posts: 14
Joined: Thu Dec 11, 2008 2:18 pm

Re: Error Compiling Bullet on Linux

Post by elLolo »

Erwin Coumans wrote:By the way, 'installing' Bullet systemwide is not recommended: the recommended way is to embed Bullet in your program and link statically.
Erwin
Why do you recommend such an installation? Do you intend to randomly break APIs?

On Unix, a systemwide installation is the usual way to install library. Any binary linked to this library can them obtain fixes automatically. Fedora already ships a package.
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: Error Compiling Bullet on Linux

Post by Erwin Coumans »

elLolo wrote:
Erwin Coumans wrote:By the way, 'installing' Bullet systemwide is not recommended: the recommended way is to embed Bullet in your program and link statically.
Erwin
Why do you recommend such an installation? Do you intend to randomly break APIs?
Of course we try to keep the API stable for several years (Bullet 2.x updates won't break the API if possible but a future Bullet 3.x might break the API, but that is a very infrequent event).

But any internal change, bugfix etc in Bullet might change behavior. So if a game is tuned for a certain version of Bullet, it will like break behavior when using another version of Bullet. For graphics and audio this might not be an issue, but for physics it is. Hence static linking is the recommended way.

This might not be a big deal for some games, but some warning is appropriate I think. Does this Fedora package still allow static linkage?
Thanks,
Erwin