[ODE] Compiling ode with Opcode

Amund Børsand amund at offroad.no
Thu Feb 12 13:30:52 MST 2004


I've gotten this far:

[C++ Error] IcePlane.h(71): E2015 Ambiguity between 'Point::operator HPoint() const' and 'Point::Point(const Point &)'
[C++ Error] IcePlane.h(72): E2015 Ambiguity between 'Point::operator HPoint() const' and 'Point::Point(const Point &)'
[C++ Error] IcePlane.h(93): E2015 Ambiguity between 'Point::operator HPoint() const' and 'Point::Point(const Point &)'
[C++ Error] IcePlane.h(110): E2015 Ambiguity between 'Point::operator HPoint() const' and 'Point::Point(const Point &)'
[C++ Error] IceAABB.h(45): E2272 Identifier expected

After defining inline_ as inline, and undefining win32. I'm using
Borland C++ Builder 6, tried with a few different language compliance
settings. Anybody know a quick fix for this?




Ed Jones <ed.jones at oracle.com> skreiv:

> Howdy,
> 
> I managed to get ODE+Opcode to work with Dev-C++ (i.e. mingw), here are 
> some of the things I did that you might like to try.
> I may well miss some steps out, in which case let me know and I'll dig 
> about a bit more in the source to see if I can find anything else that I 
> changed;
> 
> In the ODE user-settings file you need to set this, which I'm guessing 
> you've already done;
> PLATFORM=mingw
> 
> In the Opcode/Makefile, on the "gcc -c -o ..." line change the -O3 to 
> -O0 (that's "minus oh zero") I dunno why you need to do disable the 
> compiler optimisations like this, there's been some discussions about it 
> on this list I think, my trimesh collisions didn't work correctly 
> without it.
> 
> In IceFPU.h, at the top, just after the line "#define __ICEFPU_H__" put;
>   #ifdef WIN32
>   #undef WIN32
>   #endif
> Which just switches off the inline assembler stuff. Okay it's probably 
> gonna be slower, and there should probably be a way of converting the 
> inline assembler to work with mingw but I don't know what that would be, 
> and my hacky method seems to work anyway.
> 
> Do "make all" from the Opcode directory
> Do "make all" in the ODE directory
> 
> Hope that make sense.
> Cheers,
> Ed.
> 
> 
> 
> Ursula Schmitz wrote:
> 
> >Hello,
> >i want to compile ode and opcode with mingw.
> >
> >I've downloaded the newest version of ode.
> >I've edited the config file with following parameters:
> >PRECISION=SINGLE
> >BUILD=release
> >WINDOWS16=0
> >OPCODE_DIRECTORY=OPCODE
> >
> >Then i've started make with with following options:
> >"make configurations"
> >"make ode-lib"
> >
> >i get following error messages:
> >gcc -c -Wall -fno-exceptions -fno-rtti -DWIN32 -fomit-frame-pointer -ffast-math
> >-Iinclude -IOPCODE  -DdTRIMESH_ENABLED -DdNODEBUG -O2 -o ode/src/collision_trime
> >sh.o ode/src/collision_trimesh.cpp
> >In file included from ode/src/collision_trimesh_internal.h:41,
> >                 from ode/src/collision_trimesh.cpp:31:
> >OPCODE/Opcode.h:47: warning: ignoring #pragma message
> >In file included from OPCODE/OPC_IceHook.h:32,
> >                 from OPCODE/Opcode.h:72,
> >                 from ode/src/collision_trimesh_internal.h:41,
> >                 from ode/src/collision_trimesh.cpp:31:
> >OPCODE/Ice/IcePreprocessor.h:17: warning: ignoring #pragma message
> >OPCODE/Ice/IcePreprocessor.h:108: warning: ignoring #pragma inline_depth
> >In file included from OPCODE/OPC_IceHook.h:38,
> >                 from OPCODE/Opcode.h:72,
> >                 from ode/src/collision_trimesh_internal.h:41,
> >                 from ode/src/collision_trimesh.cpp:31:
> >OPCODE/Ice/IceFPU.h: In function `float FastSqrt(float)':
> >OPCODE/Ice/IceFPU.h:47: parse error before `{' token
> >OPCODE/Ice/IceFPU.h:45: warning: unused variable `float retval'
> >OPCODE/Ice/IceFPU.h:53: warning: no return statement in function returning
> >   non-void
> >OPCODE/Ice/IceFPU.h: In function `float FCMax2(float, float)':
> >OPCODE/Ice/IceFPU.h:230: `_asm' undeclared (first use this function)
> >OPCODE/Ice/IceFPU.h:230: (Each undeclared identifier is reported only once for
> >   each function it appears in.)
> >OPCODE/Ice/IceFPU.h:230: parse error before `[' token
> >OPCODE/Ice/IceFPU.h:229: warning: unused variable `float Res'
> >OPCODE/Ice/IceFPU.h:240: warning: no return statement in function returning
> >   non-void
> >OPCODE/Ice/IceFPU.h: In function `float FCMin2(float, float)':
> >OPCODE/Ice/IceFPU.h:247: `_asm' undeclared (first use this function)
> >OPCODE/Ice/IceFPU.h:247: parse error before `[' token
> >OPCODE/Ice/IceFPU.h:246: warning: unused variable `float Res'
> >OPCODE/Ice/IceFPU.h:257: warning: no return statement in function returning
> >   non-void
> >OPCODE/Ice/IceFPU.h: In function `float FCMax3(float, float, float)':
> >OPCODE/Ice/IceFPU.h:264: `_asm' undeclared (first use this function)
> >OPCODE/Ice/IceFPU.h:264: parse error before `[' token
> >OPCODE/Ice/IceFPU.h:263: warning: unused variable `float Res'
> >OPCODE/Ice/IceFPU.h:277: warning: no return statement in function returning
> >   non-void
> >OPCODE/Ice/IceFPU.h: In function `float FCMin3(float, float, float)':
> >OPCODE/Ice/IceFPU.h:284: `_asm' undeclared (first use this function)
> >OPCODE/Ice/IceFPU.h:284: parse error before `[' token
> >OPCODE/Ice/IceFPU.h:283: warning: unused variable `float Res'
> >OPCODE/Ice/IceFPU.h:297: warning: no return statement in function returning
> >   non-void
> >In file included from OPCODE/OPC_IceHook.h:39,
> >                 from OPCODE/Opcode.h:72,
> >                 from ode/src/collision_trimesh_internal.h:41,
> >                 from ode/src/collision_trimesh.cpp:31:
> >OPCODE/Ice/IceMemoryMacros.h: In function `void StoreDwords(udword*, unsigned
> >   int, unsigned int)':
> >OPCODE/Ice/IceMemoryMacros.h:58: `_asm' undeclared (first use this function)
> >OPCODE/Ice/IceMemoryMacros.h:58: parse error before `eax'
> >In file included from OPCODE/OPC_IceHook.h:56,
> >                 from OPCODE/Opcode.h:72,
> >                 from ode/src/collision_trimesh_internal.h:41,
> >                 from ode/src/collision_trimesh.cpp:31:
> >OPCODE/Ice/IceHPoint.h: At global scope:
> >OPCODE/Ice/IceHPoint.h:151: warning: conversion to a base class will never use
> >   a type conversion operator
> >In file included from OPCODE/OPC_IceHook.h:61,
> >                 from OPCODE/Opcode.h:72,
> >                 from ode/src/collision_trimesh_internal.h:41,
> >                 from ode/src/collision_trimesh.cpp:31:
> >OPCODE/Ice/IceIndexedTriangle.h:17: use of enum `CubeIndex' without previous
> >   declaration
> >make: *** [ode/src/collision_trimesh.o] Error 1
> >
> >
> >Without the Opcode Option all works fine.
> >Can anybody help me ?
> >______________________________________________________________________________
> >Nachrichten, Musik und Spiele schnell und einfach per Quickstart im 
> >WEB.DE Screensaver - Gratis downloaden: http://screensaver.web.de/?mc=021110
> >
> >_______________________________________________
> >ODE mailing list
> >ODE at q12.org
> >http://q12.org/mailman/listinfo/ode
> >  
> >
> 
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode

-- 
Amund Børsand <amund £ offroad . no>




More information about the ODE mailing list