Building Bullet Native

Hi, im with linux 64 and i want to build the native bullet physics, but it always ends with a linking error : [cc] /usr/bin/ld: cannot find -lBulletMultiThreaded
I’m not a pro with all these ANT things, but what i think is that the lib BulletMultiThreaded is never build from the MAKEFILE of bullet… tell me if i’m wrong…

well did you build it? or better is it manually buildable by make/cmake stuff?

Well i have this problem with the BulletMultiThreaded Library when i try to compile only on Linux 64 platform. When i enable the cross compile or woth the cmake in the bullet trunk with the arguments from native-bullet-build.txt it ends with this error : http://public.kitware.com/Bug/view.php?id=13855

hm why crosscompile, save yourself a lot of problems by compiling on the windows target itself.

ya i tried it because the first way didnt work

Hm ok i dont really have an idea , last time i did build it it worked fine.

But just in case you dont know there are prebuild ones if its just that you want to use bullet antive

really? that would save me a lot of time ;)! any hints for where I can find those builds?

You can find them in the SVN at http://code.google.com/p/jmonkeyengine/source/browse/ .
Look in trunk/engine/lib/bullet if you’re using nightlies, or in tags/jme3-3.0rc2/engine/lib/bullet if you’re using the currently-standard RC2 download.

P.S.: You probably have them already somewhere in the SDK download, somewhere under libraries.
Are you trying to get an Eclipse build going, or are you trying to achieve something different?

for eclipse if jme3 is from svn just use the natives in /dist/opt/bullet natives.jar

Okay, im using the natives libraries, but when I try to lunch the app, I get the following error:
[java]Exception in thread “main” java.lang.UnsatisfiedLinkError: com.jme3.bullet.PhysicsSpace.createPhysicsSpace(FFFFFFIZ)J
at com.jme3.bullet.PhysicsSpace.createPhysicsSpace(Native Method)
at com.jme3.bullet.PhysicsSpace.create(PhysicsSpace.java:153)
at com.jme3.bullet.PhysicsSpace.<init>(PhysicsSpace.java:146)
at com.jme3.bullet.BulletAppState.startPhysics(BulletAppState.java:164)
at com.jme3.bullet.BulletAppState.stateAttached(BulletAppState.java:211)
at com.jme3.app.state.AppStateManager.attach(AppStateManager.java:133)[/java]

… not sure what to do from now, is it that the natives libraries are not linked to jme?

1 Like

JME works by extracting them to some directory and loading them at runtime.
If there are any problems with that, the engine outputs error messages on the console.

If you don’t have error messages, it’s not even trying to load the libraries; I’d guess that your code is missing some step in the initialization of physics.
I don’t know what one needs to do for that, I’m haven’t gotten around to actually using physics.

Okay, the other reason for not seeing error messages might be suppressed logging :slight_smile:

To use native bullet, remove the bullet jars from the /dist/lib folder of the engine build and add the native bullet jars from the /dist/opt folder, you will need both the library and binary jar files. Then make sure all jar files from the dist/lib folder are on your project classpath. See the wiki for an overview of the jar files and their purpose. https://wiki.jmonkeyengine.org/legacy/doku.php/jme3:jme3_source_structure

1 Like

I have done those jars references changes, and you can see in the stack trace that i call natives methodes : “createPhysicsSpace(Native Method)”
here a screen of the jars I use :

even that i still have the same exception