Setting Up a Bullet Physics Project

From the forum http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?t=8656: “Installing Bullet system wide (using shared libraries or frameworks) is not actively supported, so it relies on people contributing. For most users, it is recommended to simply add the Bullet source code files to your project and build and link it statically, along with other C++ source code files.”

But using Bullet system wide is the other alternative. Here are the instructions for using Bullet system wide in OS X 10.8  (using Bullet 2.81-rev2613):

 

Download bullet and unzip

In terminal,

cd path/to/bullet
mkdir bullet-build
cd bullet-build
cmake .. -G "Unix Makefiles" -DINSTALL_LIBS=ON -DBUILD_SHARED_LIBS=ON -DFRAMEWORK=ON \
-DCMAKE_OSX_ARCHITECTURES='i386;x86_64' -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=/Library/Frameworks -DCMAKE_INSTALL_NAME_DIR=/Library/Frameworks \
-DBUILD_DEMOS:BOOL=OFF
make -j4
sudo make install

Create a new C++ (command line tool) project in Xcode

Add “/Library/Frameworks” to Framework Search Paths in Build Settings of target

image00

Try the line

#include <BulletDynamics/btBulletDynamicsCommon.h>

in main.cpp and compile

If you get the error ‘BulletCollision/CollisionDispatch/btCollisionObjectWrapper.h’ file not found then this header file was not installed in /Library/Frameworks

Copy the file from

path/to/bullet/bullet-build/src/BulletCollision/BulletCollision.framework/Versions/2.81/Headers/CollisionDispatch

to

BulletCollision.framework in /Library/Frameworks

If you are having trouble with the following build errors:
“btTypedConstraint::serialize(void*, btSerializer*) const”, referenced from:
“btAlignedFreeInternal(void*)”, referenced from:
then you have to include the Bullet frameworks in your Xcode project. Navigate to /Library/Frameworks and then drag the Bullet frameworks into your Xcode project. You need at least LinearMath.framework and BulletDynamics.framework. (Those two will fix the above linking errors.) But you probably also want BulletCollision.framework and maybe others. (This step was taken from here.)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s