[ODE] Undefined symbol for OSX build

Rick Ashton expiation at devils.com
Sat Sep 15 12:58:28 MST 2007


Okay the error seems to be in dstest. Here's the make's full output  
for dstest:

> source='dstest.cpp' object='dstest-dstest.o' libtool=no \
> depfile='.deps/dstest-dstest.Po' tmpdepfile='.deps/dstest- 
> dstest.TPo' \
> depmode=gcc3 /bin/sh ../../depcomp \
> g++ -DHAVE_CONFIG_H -I. -I. -I../../include/ode    -I../../include - 
> I../.. -g -O2 -I -L/usr/X11R6/lib -c -o dstest-dstest.o `test -f  
> 'dstest.cpp' || echo './'`dstest.cpp
> g++  -g -O2 -I -L/usr/X11R6/lib   -o dstest -L../../drawstuff/src  
> dstest-dstest.o -ldrawstuff  -framework OpenGL -framework Carbon - 
> framework AGL  -lstdc++ -lm -lpthread -lstdc++ -lm -lpthread
> /usr/bin/ld: Undefined symbols:
> _dsPrint
> dsPlatformSimLoop(int, int, dsFunctions*, int)
> _dsDebug
> _dsError
> collect2: ld returned 1 exit status
> make: *** [dstest] Error 1

Seems strange though since dsPrint, dsError etc. is defined in  
drawstuff.h which is included in dstest.cpp. What does the underscore  
denote? I remember this from somewhere but it slips my mind now.

Is it necessary to include the test and draw stuff as part of the  
make? Can you exclude this?


On 15 Sep 2007, at 20:58 , Jon Watte (ODE) wrote:

> Those are symbols defined in the "drawstuff" library, which is not  
> part of ODE proper, but used in the test cases. You can grep for  
> "dsError" in the various source files ("grep -r" is a godsend :-)  
> to figure out where they are defined, then figure out why they  
> don't get linked in.
> Cheers,
>          / h+

More information about the ODE mailing list