[ODE] Complex compile problem ODE 0.7

Rodrigo Hernandez kwizatz at aeongames.com
Thu Oct 26 07:05:37 MST 2006


It does seem to be a STL problem, try adding the -lstdc++ library to 
your compilation command, that should be added by default by g++, but 
perhaps for some reason isn't.

Mauro G. Todeschini wrote:
> 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
>
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode
>
>   



More information about the ODE mailing list