[odejava] compilation problems

Hello folks,

I have checked out a recent version of odejava from cvs and now trying to compile it. During compilation I get the following problems (using linux, gcc version 3.3.4 (Debian 1:3.3.4-13)):

[…]
[creating libodejava.so]
…/odejava/odejava_wrap.cxx: In function void Java_org_odejava_ode_OdeJNI_dWorldSetAutoDisableAnguleThreshold(JNIEnv*, _jclass*, long long int, float)': ../odejava/odejava_wrap.cxx:4928: error: dWorldSetAutoDisableAnguleThreshold’
undeclared (first use this function)
…/odejava/odejava_wrap.cxx:4928: error: (Each undeclared identifier is
reported only once for each function it appears in.)
…/odejava/odejava_wrap.cxx: In function jfloat Java_org_odejava_ode_OdeJNI_dWorldGetAutoDisableAnguleThreshold(JNIEnv*, _jclass*, long long int)': ../odejava/odejava_wrap.cxx:4947: error: dWorldGetAutoDisableAnguleThreshold’
undeclared (first use this function)
…/odejava/odejava_wrap.cxx: In function jfloat Java_org_odejava_ode_OdeJNI_dWorldGetContactSurfaceLater(JNIEnv*, _jclass*, long long int)': ../odejava/odejava_wrap.cxx:5107: error: dWorldGetContactSurfaceLater’
undeclared (first use this function)
…/odejava/odejava_wrap.cxx: In function void Java_org_odejava_ode_OdeJNI_dBodySetAutoDisableAnguleThreshold(JNIEnv*, _jclass*, long long int, float)': ../odejava/odejava_wrap.cxx:6340: error: dBodySetAutoDisableAnguleThreshold’
undeclared (first use this function)
…/odejava/odejava_wrap.cxx: In function jfloat Java_org_odejava_ode_OdeJNI_dBodyGetAutoDisableAnguleThreshold(JNIEnv*, _jclass*, long long int)': ../odejava/odejava_wrap.cxx:6359: error: dBodyGetAutoDisableAnguleThreshold’
undeclared (first use this function)
…/odejava/odejava_wrap.cxx: At top level:
…/odejava/odejava.hpp:41: warning: int surfaceMode' defined but not used ../odejava/odejava.hpp:42: warning: float surfaceMu’ defined but not used
…/odejava/odejava.hpp:43: warning: float surfaceMu2' defined but not used ../odejava/odejava.hpp:44: warning: float surfaceBounce’ defined but not used
…/odejava/odejava.hpp:45: warning: float surfaceBounceVel' defined but not used ../odejava/odejava.hpp:46: warning: float surfaceMotion1’ defined but not used
…/odejava/odejava.hpp:47: warning: float surfaceMotion2' defined but not used ../odejava/odejava.hpp:48: warning: float surfaceSlip1’ defined but not used
…/odejava/odejava.hpp:49: warning: float surfaceSlip2' defined but not used ../odejava/odejava.hpp:50: warning: float surfaceSoftErp’ defined but not used
…/odejava/odejava.hpp:51: warning: float surfaceSoftCfm' defined but not used ../odejava/odejava.cpp: In function void
Java_org_odejava_collision_PureJavaCollision_javaSpaceCollide2(JNIEnv*,
_jobject*, long long int, long long int)’:
…/odejava/odejava.cpp:474: warning: cast to pointer from integer of different
size
…/odejava/odejava.cpp:474: warning: cast to pointer from integer of different
size
g++: …/odejava/odejava_wrap.o: No such file or directory

In addition I wonder if it would be possible to add the log4j.jar into the library path (and update the ant build scripts), as the java compilation will not work without log4j. Currently you need to copy it into the JAVA_HOME/jre/lib/ext/ directory to run the build script.

Any reason why you are not using the precompiled binaries?

The explanation for your compile problem that the “missing” methods are infact missing from the version of ODE you are compiling against. Check out the second most recent version of odejava.i and it will work.

Will.

Actually this was due to a typo in the odejava.i file for these new methods.

Angule should be “Angular” (several instances) and “Later” should have been “Layer”.

I didn’t notice this when I committed in the patch to add these methods. It’s fixed now.

Will.