[ODE] Complex compile problem ODE 0.7

Mauro G. Todeschini mauro2006todeschini at itia.cnr.it
Thu Oct 26 03:54:15 MST 2006


Hi,
	I have a problem which is quite difficult to explain.
I dont' know if it's a ODE problem or a problem of my development
environment (probably the latter).
With ODE 0.6 the following steps don't give me any problem.
But with ODE 0.7 I cannot compile my application.

I downloaded ODE 0.7
and built It with (on PC A: windows, mingw and msys):
sh autogen.sh
./configure --enable-release
make

then I took the library and headers on PC B: windows and Dev-C++
but when I try to compile my application I obtain:

g++.exe tomSimulator.o tomUtils.o main-odemullib.o ode_draw.o tomFixed.o
tomMovable.o tomJoint.o tomSystem.o tomCollision.o  -o
"tom-odemullib.exe" -L"lib" -L"../../lib" -lode -lmullib -ltinyxmlSTL
-lglut32 -lglu32 -lopengl32 -ljpeg -lgdi32 -luser32 -lkernel32 -lwinmm
../../lib/libode.a(libode_a-convex.o)(.text+0x88):convex.cpp: undefined
reference to `std::__default_alloc_template<true, 0>::allocate(unsigned
int)'
../../lib/libode.a(libode_a-convex.o)(.text$_ZNSt8_Rb_treeISt4pairIjjES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE8_M_eraseEPSt13_Rb_tree_nodeIS1_E[std::_Rb_tree<std::pair<unsigned
int, unsigned int>, std::pair<unsigned int, unsigned int>,
std::_Identity<std::pair<unsigned int, unsigned int> >,
std::less<std::pair<unsigned int, unsigned int> >,
std::allocator<std::pair<unsigned int, unsigned int> >
>::_M_erase(std::_Rb_tree_node<std::pair<unsigned int, unsigned int>
>*)]+0x27):convex.cpp: undefined reference to
`std::__default_alloc_template<true, 0>::deallocate(void*, unsigned int)'
../../lib/libode.a(libode_a-convex.o)(.text$_ZNSt8_Rb_treeISt4pairIjjES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE9_M_insertEPSt18_Rb_tree_node_baseS9_RKS1_[std::_Rb_tree<std::pair<unsigned
int, unsigned int>, std::pair<unsigned int, unsigned int>,
std::_Identity<std::pair<unsigned int, unsigned int> >,
std::less<std::pair<unsigned int, unsigned int> >,
std::allocator<std::pair<unsigned int, unsigned int> >
>::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*,
std::pair<unsigned int, unsigned int> const&)]+0x29):convex.cpp:
undefined reference to `std::__default_alloc_template<true,
0>::allocate(unsigned int)'
../../lib/libode.a(libode_a-convex.o)(.text$_ZNSt14__simple_allocISt13_Rb_tree_nodeISt4pairIjjEESt24__default_alloc_templateILb1ELi0EEE8allocateEj[std::__simple_alloc<std::_Rb_tree_node<std::pair<unsigned
int, unsigned int> >, std::__default_alloc_template<true, 0>
>::allocate(unsigned int)]+0x1c):convex.cpp: undefined reference to
`std::__default_alloc_template<true, 0>::allocate(unsigned int)'
../../lib/libode.a(libode_a-convex.o)(.text$_ZNSt14__simple_allocISt13_Rb_tree_nodeISt4pairIjjEESt24__default_alloc_templateILb1ELi0EEE10deallocateEPS3_j[std::__simple_alloc<std::_Rb_tree_node<std::pair<unsigned
int, unsigned int> >, std::__default_alloc_template<true, 0>
>::deallocate(std::_Rb_tree_node<std::pair<unsigned int, unsigned int>
>*, unsigned int)]+0x1b):convex.cpp: undefined reference to
`std::__default_alloc_template<true, 0>::deallocate(void*, unsigned int)'
../../lib/libode.a(libode_a-convex.o)(.text$_ZNSt8_Rb_treeISt4pairIjjES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE14_M_create_nodeERKS1_[std::_Rb_tree<std::pair<unsigned
int, unsigned int>, std::pair<unsigned int, unsigned int>,
std::_Identity<std::pair<unsigned int, unsigned int> >,
std::less<std::pair<unsigned int, unsigned int> >,
std::allocator<std::pair<unsigned int, unsigned int> >
>::_M_create_node(std::pair<unsigned int, unsigned int>
const&)]+0x6):convex.cpp: undefined reference to
`std::__default_alloc_template<true, 0>::allocate(unsigned int)'
collect2: ld returned 1 exit status
c:\dev-cpp\bin\make.exe: *** [tom-odemullib.exe] Error 1

It seems that there is some problem with libode_a-convex.o (I don't use
convex hulls and I don't know what they are).
It seems to me a problem with STL but I don't know if the problem is in
PC A (mingw), PC B (Dev-C++) and how to solve it. Any hint to point me
in the right direction?
Is it possible to disable convex-hulls in ODE 0.7 (as a workaround)?

Bye and Thanks



More information about the ODE mailing list