[Solved] Can't make [ubuntu 12.04]

Official forum for the Chipmunk2D Physics Library.
Post Reply
cortez
Posts: 2
Joined: Thu Sep 06, 2012 1:01 pm
Contact:

[Solved] Can't make [ubuntu 12.04]

Post by cortez »

Hi

I just found this project and wanted to give it a try. so I cloned the source from github and followed the instruction but I'm getting some weird errors.

Commands used:

Code: Select all

$ cd Chipmunk-Physics
$ cmake .
$ make 
cmake is successful, but I get the following errors when I run "make":

Code: Select all

Linking C executable chipmunk_demos
CMakeFiles/chipmunk_demos.dir/Buoyancy.c.o:Buoyancy.c:function waterPreSolve: error: undefined reference to '__exp_finite'
CMakeFiles/chipmunk_demos.dir/Buoyancy.c.o:Buoyancy.c:function waterPreSolve: error: undefined reference to '__exp_finite'
CMakeFiles/chipmunk_demos.dir/Planet.c.o:Planet.c:function init: error: undefined reference to '__atan2_finite'
CMakeFiles/chipmunk_demos.dir/Tank.c.o:Tank.c:function update: error: undefined reference to '__atan2_finite'
CMakeFiles/chipmunk_demos.dir/Bench.c.o:Bench.c:function init_SimpleTerrainVCircles_200: error: undefined reference to '__pow_finite'
CMakeFiles/chipmunk_demos.dir/Bench.c.o:Bench.c:function init_SimpleTerrainVHexagons_200: error: undefined reference to '__pow_finite'
CMakeFiles/chipmunk_demos.dir/Bench.c.o:Bench.c:function init_SimpleTerrainVBoxes_200: error: undefined reference to '__pow_finite'
CMakeFiles/chipmunk_demos.dir/Unicycle.c.o:Unicycle.c:function motor_preSolve: error: undefined reference to '__pow_finite'
CMakeFiles/chipmunk_demos.dir/Unicycle.c.o:Unicycle.c:function motor_preSolve: error: undefined reference to '__asin_finite'
CMakeFiles/chipmunk_demos.dir/Unicycle.c.o:Unicycle.c:function motor_preSolve: error: undefined reference to 'sincos'
CMakeFiles/chipmunk_demos.dir/Unicycle.c.o:Unicycle.c:function motor_preSolve: error: undefined reference to '__asin_finite'
../src/libchipmunk.a(cpVect.c.o):cpVect.c:function cpvslerp: error: undefined reference to '__acos_finite'
../src/libchipmunk.a(cpVect.c.o):cpVect.c:function cpvslerp: error: undefined reference to 'sin'
../src/libchipmunk.a(cpVect.c.o):cpVect.c:function cpvslerp: error: undefined reference to 'sin'
../src/libchipmunk.a(cpVect.c.o):cpVect.c:function cpvslerp: error: undefined reference to 'sin'
../src/libchipmunk.a(cpVect.c.o):cpVect.c:function cpvslerpconst: error: undefined reference to '__acos_finite'
../src/libchipmunk.a(cpVect.c.o):cpVect.c:function cpvslerpconst: error: undefined reference to '__acos_finite'
../src/libchipmunk.a(cpVect.c.o):cpVect.c:function cpvslerpconst: error: undefined reference to 'sin'
../src/libchipmunk.a(cpBody.c.o):cpBody.c:function cpBodyUpdatePosition: error: undefined reference to 'sincos'
../src/libchipmunk.a(cpBody.c.o):cpBody.c:function cpBodySetAngle: error: undefined reference to 'sincos'
../src/libchipmunk.a(cpDampedRotarySpring.c.o):cpDampedRotarySpring.c:function preStep: error: undefined reference to '__exp_finite'
../src/libchipmunk.a(cpDampedSpring.c.o):cpDampedSpring.c:function preStep: error: undefined reference to '__exp_finite'
collect2: ld returned 1 exit status
make[2]: *** [Demo/chipmunk_demos] Error 1
make[1]: *** [Demo/CMakeFiles/chipmunk_demos.dir/all] Error 2
make: *** [all] Error 2
I believe I have all the libraries installed.
Last edited by cortez on Thu Sep 06, 2012 1:23 pm, edited 1 time in total.
cortez
Posts: 2
Joined: Thu Sep 06, 2012 1:01 pm
Contact:

Re: Can't make [ubuntu 12.04]

Post by cortez »

Problem solved after adding the following to CmakeList:

Code: Select all

set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lm")
User avatar
slembcke
Site Admin
Posts: 4166
Joined: Tue Aug 14, 2007 7:13 pm
Contact:

Re: Can't make [ubuntu 12.04]

Post by slembcke »

Hmm. Sounds like it's not linking to the math library. It's default on some platforms and not others. It's inconsistent between different Linux distros too sometimes.

I *think* all you need to add this line to src/CMakeLists.txt right after the add_library() to create the chipmunk target.

Code: Select all

target_link_libraries(chipmunk m)
If that works, I can commit it to git.

edit: Looks like you beat me to the post. Looks like that should work too.
Can't sleep... Chipmunks will eat me...
Check out our latest projects! -> http://howlingmoonsoftware.com/wordpress/
Post Reply

Who is online

Users browsing this forum: No registered users and 9 guests