compiling problems in Linux

scardario

25-09-2006 20:04:44

Hi, I'm trying to compile ogreOde on SuSE 10 64 bits and the make crashes:


make all-recursive
make[1]: Entering directory `/ethereal/developing/dependencias/ogreOde'
Making all in include
make[2]: Entering directory `/ethereal/developing/dependencias/ogreOde/include'
make[2]: No se hace nada para `all'.
make[2]: Leaving directory `/ethereal/developing/dependencias/ogreOde/include'
Making all in src
make[2]: Entering directory `/ethereal/developing/dependencias/ogreOde/src'
if /bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I.. -DEXT_HASH -I/usr/local/include -I/usr/local/include/OGRE -I../include -I../ode/include -g -O2 -MT OgreOdeBody.lo -MD -MP -MF ".deps/OgreOdeBody.Tpo" -c -o OgreOdeBody.lo OgreOdeBody.cpp; \
then mv -f ".deps/OgreOdeBody.Tpo" ".deps/OgreOdeBody.Plo"; else rm -f ".deps/OgreOdeBody.Tpo"; exit 1; fi
mkdir .libs
g++ -DHAVE_CONFIG_H -I. -I. -I.. -DEXT_HASH -I/usr/local/include -I/usr/local/include/OGRE -I../include -I../ode/include -g -O2 -MT OgreOdeBody.lo -MD -MP -MF .deps/OgreOdeBody.Tpo -c OgreOdeBody.cpp -fPIC -DPIC -o .libs/OgreOdeBody.o
OgreOdeBody.cpp: In member function 'OgreOde::Joint* OgreOde::Body::getJoint(int)':
OgreOdeBody.cpp:439: error: cast from 'dxJoint*' to 'unsigned int' loses precision
OgreOdeBody.cpp: In destructor 'virtual OgreOde::Body::~Body()':
OgreOdeBody.cpp:608: error: cast from 'dxBody*' to 'unsigned int' loses precision
make[2]: *** [OgreOdeBody.lo] Error 1
make[2]: Leaving directory `/ethereal/developing/dependencias/ogreOde/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/ethereal/developing/dependencias/ogreOde'
make: *** [all] Error 2


Any idea?...

tuan kuranes

25-09-2006 20:13:44

that's a 64 bits problem. pointer to integer type conversion are no x64 wise.
Did you try to cast to (unsigned long) which is anyway internal id of MaintainedItemList<> template ?

scardario

26-09-2006 17:46:04

it worked! thanks, but now I have another problem, this is the make error:


make
make all-recursive
make[1]: Entering directory `/ethereal/developing/dependencias/ogreOde'
Making all in include
make[2]: Entering directory `/ethereal/developing/dependencias/ogreOde/include'
make[2]: No se hace nada para `all'.
make[2]: Leaving directory `/ethereal/developing/dependencias/ogreOde/include'
Making all in src
make[2]: Entering directory `/ethereal/developing/dependencias/ogreOde/src'
make[2]: *** No hay ninguna regla para construir el objetivo `../ode/ode/src/libode.a', necesario para `libOgreOde_Core.la'. Alto.
make[2]: Leaving directory `/ethereal/developing/dependencias/ogreOde/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/ethereal/developing/dependencias/ogreOde'
make: *** [all] Error 2


it says that there is no rule to build the target libode.a, and it stops.
I have ode compiled and libode.a is in /usr/local/lib, is there any way to use this library instead of rebuild it from the sources shiped in OgreOde?

tuan kuranes

26-09-2006 17:59:56

You'll have to tweak configure files for that, sorry.
Did you tried to build the ode shipped with ?

scardario

27-09-2006 00:22:02

I had to compile the ode shiped in OgreOde
in order to compile ode I had to copy the configure.in and the ode-config.in files from the source directory I downloaded from ode webpage.

I continued with OgreOde compiling, until this error:


../include/SimpleScenes_Buggy.h:104: undefined reference to `OgreOde_Prefab::OgreOdeDotLoader::loadVehicle(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'


and other similar ones

SuperMegaMau

27-09-2006 01:07:36

look at my thread... just solved that problem... search for OgreOdeDotLoader

scardario

27-09-2006 02:25:08

thanks, it worked
I have compiled everything now