Chipmunk2D
Chipmunk2D copied to clipboard
MSVC+CMake: unresolved external symbol cpHastySpaceNew
Hi.
I built Chipmunk from source using CMake + MSVC 2019.
Then, when using MSVC command line to link any program that uses cpHastySpace
, I get the error
test.obj : error LNK2019: unresolved external symbol cpHastySpaceNew referenced in function main
test.exe : fatal error LNK1120: 1 unresolved externals
cpSpaceNew
works, though.
Full CMD session to reproduce the issue:
c:\code\chipmunk2d>git rev-parse HEAD 1d01b2a40be3990f7b79f575b7ff35f3c62042e3 c:\code\chipmunk2d>git status On branch master Your branch is up to date with 'origin/master'. nothing to commit, working tree clean c:\code\chipmunk2d>cmake --version cmake version 3.17.2 CMake suite maintained and supported by Kitware (kitware.com/cmake). c:\code\chipmunk2d>cmake . -DBUILD_DEMOS=OFF -- Building for: Visual Studio 16 2019 -- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.18363. -- The C compiler identification is MSVC 19.25.28614.0 -- The CXX compiler identification is MSVC 19.25.28614.0 -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx64/x64/cl.exe -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx64/x64/cl.exe - works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx64/x64/cl.exe -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx64/x64/cl.exe - works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done Configuring Chipmunk2D version 7.0.3 -- Configuring done -- Generating done -- Build files have been written to: C:/code/chipmunk2d c:\code\chipmunk2d>cmake --build . --config Release Microsoft (R) Build Engine version 16.5.0+d4cbfca49 for .NET Framework Copyright (C) Microsoft Corporation. All rights reserved. Checking Build System Building Custom Rule C:/code/chipmunk2d/src/CMakeLists.txt chipmunk.c cpArbiter.c cpArray.c cpBBTree.c cpBody.c cpCollision.c cpConstraint.c cpDampedRotarySpring.c cpDampedSpring.c cpGearJoint.c cpGrooveJoint.c cpHashSet.c cpHastySpace.c cpMarch.c cpPinJoint.c cpPivotJoint.c cpPolyShape.c cpPolyline.c C:\code\chipmunk2d\include\chipmunk/cpPolyline.h(9,17): warning C4200: nonstandard extension used: zero-sized array in struct/union [C:\code\chipmunk2d\src\chipmunk.vcxproj] C:\code\chipmunk2d\include\chipmunk/cpPolyline.h(9,17): message : This member will be ignored by a defaulted constructo r or copy/move assignment operator [C:\code\chipmunk2d\src\chipmunk.vcxproj] cpRatchetJoint.c cpRobust.c Generating Code... Compiling... cpRotaryLimitJoint.c cpShape.c cpSimpleMotor.c cpSlideJoint.c cpSpace.c cpSpaceComponent.c cpSpaceDebug.c cpSpaceHash.c cpSpaceQuery.c cpSpaceStep.c cpSpatialIndex.c cpSweep1D.c Generating Code... Creating library C:/code/chipmunk2d/src/Release/chipmunk.lib and object C:/code/chipmunk2d/src/Release/chipmunk.ex p chipmunk.vcxproj -> C:\code\chipmunk2d\src\Release\chipmunk.dll Building Custom Rule C:/code/chipmunk2d/src/CMakeLists.txt chipmunk.c cpArbiter.c cpArray.c cpBBTree.c cpBody.c cpCollision.c cpConstraint.c cpDampedRotarySpring.c cpDampedSpring.c cpGearJoint.c cpGrooveJoint.c cpHashSet.c cpHastySpace.c cpMarch.c cpPinJoint.c cpPivotJoint.c cpPolyShape.c cpPolyline.c C:\code\chipmunk2d\include\chipmunk/cpPolyline.h(9,17): warning C4200: nonstandard extension used: zero-sized array in struct/union [C:\code\chipmunk2d\src\chipmunk_static.vcxproj] C:\code\chipmunk2d\include\chipmunk/cpPolyline.h(9,17): message : This member will be ignored by a defaulted constructo r or copy/move assignment operator [C:\code\chipmunk2d\src\chipmunk_static.vcxproj] cpRatchetJoint.c cpRobust.c Generating Code... Compiling... cpRotaryLimitJoint.c cpShape.c cpSimpleMotor.c cpSlideJoint.c cpSpace.c cpSpaceComponent.c cpSpaceDebug.c cpSpaceHash.c cpSpaceQuery.c cpSpaceStep.c cpSpatialIndex.c cpSweep1D.c Generating Code... chipmunk_static.vcxproj -> C:\code\chipmunk2d\src\Release\chipmunk.lib Building Custom Rule C:/code/chipmunk2d/CMakeLists.txt c:\code\chipmunk2d>set INCLUDE=%INCLUDE%;c:\code\chipmunk2d\include c:\code\chipmunk2d>set LIB=%LIB%;c:\code\chipmunk2d\src\Release c:\code\chipmunk2d>type test.c #include <chipmunk/chipmunk.h> int main() { cpHastySpaceNew(); return 0; } c:\code\chipmunk2d>cl /MD chipmunk.lib msvcrt.lib test.c Microsoft (R) C/C++ Optimizing Compiler Version 19.25.28614 for x64 Copyright (C) Microsoft Corporation. All rights reserved. test.c Microsoft (R) Incremental Linker Version 14.25.28614.0 Copyright (C) Microsoft Corporation. All rights reserved. /out:test.exe chipmunk.lib msvcrt.lib test.obj test.obj : error LNK2019: unresolved external symbol cpHastySpaceNew referenced in function main test.exe : fatal error LNK1120: 1 unresolved externals
Using cpSpaceNew
instead works, though:
c:\code\chipmunk2d>type test.c #include <chipmunk/chipmunk.h> int main() { cpSpaceNew(); return 0; } c:\code\chipmunk2d>cl /MD chipmunk.lib msvcrt.lib test.c Microsoft (R) C/C++ Optimizing Compiler Version 19.25.28614 for x64 Copyright (C) Microsoft Corporation. All rights reserved. test.c Microsoft (R) Incremental Linker Version 14.25.28614.0 Copyright (C) Microsoft Corporation. All rights reserved. /out:test.exe chipmunk.lib msvcrt.lib test.obj Creating library test.lib and object test.exp
Excerpt of dumpbin /all src\Release\chipmunk.lib
Microsoft (R) COFF/PE Dumper Version 14.25.28614.0
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file src\Release\chipmunk.lib
File Type: LIBRARY
Archive member name at 8: /
5EBA4AE5 time/date Tue May 12 00:06:13 2020
uid
gid
0 mode
5516 size
correct header end
587 public symbols
AC58 cpSweep1DAlloc
AC58 cpSweep1DInit
AC58 cpSweep1DNew
D6C8 ??_C@_0BL@EGJNDNNH@?$CBstaticIndex?9?$DOdynamicIndex@
D6C8 ??_C@_0CI@GLNIAIPJ@C?3?2code?2chipmunk2d?2src?2cpSpatia@
D6C8 ??_C@_0DO@DNEKNPIK@This?5static?5index?5is?5already?5as@
D6C8 ?cpSpatialIndexInit@@YAPEAUcpSpatialIndex@@PEAU1@PEAUcpSpatialIndexClass@@P6A?AUcpBB@@PEAX@Z0@Z
D6C8 cpSpatialIndexCollideStatic
D6C8 cpSpatialIndexFree
E630 ??_C@_0CF@EMHBPMMF@C?3?2code?2chipmunk2d?2src?2cpSpaceS@
E630 ??_C@_0CF@PCDGAGKE@count?5?$DM?$DN?5CP_MAX_CONTACTS_PER_AR@
E630 ??_C@_0CJ@LHFEOHIA@Internal?5Error?3?5Contact?5buffer?5@
E630 ?cpContactBufferGetArray@@YAPEAUcpContact@@PEAUcpSpace@@@Z
E630 ?cpShapeUpdateFunc@@YAXPEAUcpShape@@PEAX@Z
E630 ?cpSpaceArbiterSetFilter@@YAEPEAUcpArbiter@@PEAUcpSpace@@@Z
E630 ?cpSpaceCollideShapes@@YAIPEAUcpShape@@0IPEAUcpSpace@@@Z
E630 ?cpSpaceGetPostStepCallback@@YAPEAUcpPostStepCallback@@PEAUcpSpace@@PEAX@Z
E630 ?cpSpaceLock@@YAXPEAUcpSpace@@@Z
E630 ?cpSpacePushContacts@@YAXPEAUcpSpace@@H@Z
E630 ?cpSpacePushFreshContactBuffer@@YAXPEAUcpSpace@@@Z
E630 ?cpSpaceUnlock@@YAXPEAUcpSpace@@E@Z
E630 __real@3ff0000000000000
E630 __real@7ff0000000000000
E630 cpSpaceAddPostStepCallback
E630 cpSpaceStep
12C38 cpSpaceBBQuery
12C38 cpSpacePointQuery
12C38 cpSpacePointQueryNearest
12C38 cpSpaceSegmentQuery
12C38 cpSpaceSegmentQueryFirst
12C38 cpSpaceShapeQuery
15954 ??_C@_05IOMEMJEC@count@
15954 ??_C@_09KDPIDABE@primes?$FLi?$FN@
15954 ??_C@_0BP@FMNHNCPI@C?3?2code?2chipmunk2d?2src?2prime?4h@
15954 ??_C@_0CF@LOLKIL@C?3?2code?2chipmunk2d?2src?2cpSpaceH@
15954 ??_C@_0CK@FCLIKEDG@Internal?5Error?3?5Buffer?5size?5is?5@
15954 ??_C@_0ED@FMLMCGNO@Tried?5to?5resize?5a?5hash?5table?5to@
15954 __xmm@7fffffffffffffff7fffffffffffffff
15954 cpSpaceHashAlloc
15954 cpSpaceHashInit
15954 cpSpaceHashNew
15954 cpSpaceHashResize
1BEC6 __real@4014000000000000
1BEC6 __real@c000000000000000
1BEC6 __xmm@80000000000000008000000000000000
1BEC6 cpSpaceDebugDraw
1E0F2 ??_C@_0BI@EDKJPELK@?$CBcpSpaceIsLocked?$CIspace?$CJ@
1E0F2 ??_C@_0CJ@HCKIOHIO@group?5?$DN?$DN?5NULL?5?$HM?$HM?5cpBodyIsSleepi@
1E0F2 ??_C@_0CK@BECHLCGO@C?3?2code?2chipmunk2d?2src?2cpSpaceC@
1E0F2 ??_C@_0CL@FKKEDIOD@cpBodyGetType?$CIbody?$CJ?5?$DN?$DN?5CP_BODY_@
1E0F2 ??_C@_0CL@KGCKBAFO@Non?9dynamic?5bodies?5cannot?5be?5pu@
1E0F2 ??_C@_0CM@COAHOKGI@cpBodyGetType?$CIbody?$CJ?5?$DN?$DN?5CP_BODY_@
1E0F2 ??_C@_0CM@LLBEBIDO@ComponentRoot?$CIbody?$CJ?5?$DN?$DN?5Componen@
1E0F2 ??_C@_0CP@CLPGCHBN@cpSpaceGetSleepTimeThreshold?$CIsp@
1E0F2 ??_C@_0DE@NOMNIIPL@cpBodyActivateStatic?$CI?$CJ?5called?5o@
1E0F2 ??_C@_0DG@EKNHMOBA@Cannot?5use?5a?5non?9sleeping?5body?5@
1E0F2 ??_C@_0DL@FBLPFJGM@Internal?5error?3?5Attempting?5to?5a@
1E0F2 ??_C@_0DN@IHJIAMHE@Internal?5error?3?5Attempting?5to?5d@
1E0F2 ??_C@_0EC@IKHKONPO@The?5body?5is?5already?5sleeping?5an@
1E0F2 ??_C@_0HD@CGNLOBHG@Sleeping?5is?5not?5enabled?5on?5the?5@
1E0F2 ??_C@_0HE@BKCCEHCA@Bodies?5cannot?5be?5put?5to?5sleep?5d@
1E0F2 ?cpSpaceActivateBody@@YAXPEAUcpSpace@@PEAUcpBody@@@Z
1E0F2 ?cpSpaceProcessComponents@@YAXPEAUcpSpace@@N@Z
1E0F2 cpBodyActivate
1E0F2 cpBodyActivateStatic
1E0F2 cpBodySleep
1E0F2 cpBodySleepWithGroup
2386C ??_C@_0BD@IOPHONEI@?$CBconstraint?9?$DOspace@
2386C ??_C@_0BF@MKKGGBFD@body?9?$DOspace?5?$CB?$DN?5space@
2386C ??_C@_0BG@OBGLBDKL@shape?9?$DOspace?5?$CB?$DN?5space@
2386C ??_C@_0BH@NNDOJLDK@a?5?$CB?$DN?5NULL?5?$CG?$CG?5b?5?$CB?$DN?5NULL@
2386C ??_C@_0BK@GNNKPNLH@Damping?5must?5be?5positive?4@
2386C ??_C@_0BL@PLLLJEOK@constraint?9?$DOspace?5?$CB?$DN?5space@
2386C ??_C@_0BM@GDCJKHHE@shape?9?$DObody?9?$DOspace?5?$DN?$DN?5space@
2386C ??_C@_0CB@KEHKANAJ@cpSpaceContainsBody?$CIspace?0?5body@
2386C ??_C@_0CB@OIGIOPAE@The?5shape?8s?5body?5is?5not?5defined@
2386C ??_C@_0CB@PBEIHBPB@C?3?2code?2chipmunk2d?2src?2cpSpace?4@
2386C ??_C@_0CD@FHNHEDMP@cpSpaceContainsShape?$CIspace?0?5sha@
2386C ??_C@_0CE@PEHIOFNI@body?5?$CB?$DN?5cpSpaceGetStaticBody?$CIsp@
2386C ??_C@_0CF@EIJALBAI@space?9?$DOstaticBody?9?$DOshapeList?5?$DN?$DN@
2386C ??_C@_0CH@GGOPBMFG@Constraint?5is?5attached?5to?5a?5NUL@
2386C ??_C@_0CK@ELACCAP@Iterations?5must?5be?5positive?5and@
2386C ??_C@_0CN@PEMGPPM@cpSpaceContainsConstraint?$CIspace@
2386C ??_C@_0DI@ECEJJBHA@Cannot?5remove?5the?5designated?5st@
2386C ??_C@_0DO@FFJDFNCG@The?5shape?8s?5body?5must?5be?5added?5@
2386C ??_C@_0EN@NNFAOAPH@Cannot?5remove?5a?5body?5that?5was?5n@
2386C ??_C@_0EO@BLMNFCFH@Cannot?5remove?5a?5shape?5that?5was?5@
2386C ??_C@_0FC@CNGJECNK@You?5have?5already?5added?5this?5bod@
2386C ??_C@_0FD@IAKCIANN@You?5have?5already?5added?5this?5bod@
2386C ??_C@_0FD@KJHPDPHB@You?5have?5already?5added?5this?5sha@
2386C ??_C@_0FD@NADMMLBD@Cannot?5remove?5a?5constraint?5that@
2386C ??_C@_0FE@MBCCOMMA@You?5have?5already?5added?5this?5sha@
2386C ??_C@_0FI@LFCBBDHC@You?5have?5already?5added?5this?5con@
2386C ??_C@_0FJ@FIDHODFG@You?5have?5already?5added?5this?5con@
2386C ??_C@_0GB@CGIDHOBI@Internal?5Error?3?5Changing?5the?5de@
2386C ??_C@_0HB@KNILAFHG@You?5cannot?5manually?5reindex?5obj@
2386C ??_C@_0IC@IJAFECOI@This?5operation?5cannot?5be?5done?5s@
2386C ??_C@_0M@MKOKEDBH@shape?9?$DObody@
2386C ??_C@_0N@CCOACGDF@?$CBbody?9?$DOspace@
2386C ??_C@_0O@BJGCFBHE@?$CBshape?9?$DOspace@
2386C ??_C@_0P@CFCNNLJG@damping?5?$DO?$DN?50?40@
2386C ??_C@_0P@FDJCIJEM@?$CBspace?9?$DOlocked@
2386C ??_C@_0P@MDPMJFEM@iterations?5?$DO?50@
2386C ?cpCollisionHandlerDoNothing@@3UcpCollisionHandler@@A
2386C ?cpSpaceFilterArbiters@@YAXPEAUcpSpace@@PEAUcpBody@@PEAUcpShape@@@Z
2386C ?cpSpaceSetStaticBody@@YAXPEAUcpSpace@@PEAUcpBody@@@Z
2386C __real@3fecccccc0000000
2386C __real@404e000000000000
2386C cpSpaceAddBody
2386C cpSpaceAddCollisionHandler
2386C cpSpaceAddConstraint
2386C cpSpaceAddDefaultCollisionHandler
2386C cpSpaceAddShape
2386C cpSpaceAddWildcardHandler
2386C cpSpaceAlloc
2386C cpSpaceContainsBody
2386C cpSpaceContainsConstraint
2386C cpSpaceContainsShape
2386C cpSpaceDestroy
2386C cpSpaceEachBody
2386C cpSpaceEachConstraint
2386C cpSpaceEachShape
2386C cpSpaceFree
2386C cpSpaceGetCollisionBias
2386C cpSpaceGetCollisionPersistence
2386C cpSpaceGetCollisionSlop
2386C cpSpaceGetCurrentTimeStep
2386C cpSpaceGetDamping
2386C cpSpaceGetGravity
2386C cpSpaceGetIdleSpeedThreshold
2386C cpSpaceGetIterations
2386C cpSpaceGetSleepTimeThreshold
2386C cpSpaceGetStaticBody
2386C cpSpaceGetUserData
2386C cpSpaceInit
2386C cpSpaceIsLocked
2386C cpSpaceNew
2386C cpSpaceReindexShape
2386C cpSpaceReindexShapesForBody
2386C cpSpaceReindexStatic
2386C cpSpaceRemoveBody
2386C cpSpaceRemoveConstraint
2386C cpSpaceRemoveShape
2386C cpSpaceSetCollisionBias
2386C cpSpaceSetCollisionPersistence
2386C cpSpaceSetCollisionSlop
2386C cpSpaceSetDamping
2386C cpSpaceSetGravity
2386C cpSpaceSetIdleSpeedThreshold
2386C cpSpaceSetIterations
2386C cpSpaceSetSleepTimeThreshold
2386C cpSpaceSetUserData
2386C cpSpaceUseSpatialHash
2DF32 ??_C@_0CB@DOMPGMCM@Constraint?5is?5not?5a?5slide?5joint@
2DF32 ??_C@_0CF@GPCCBJBJ@cpConstraintIsSlideJoint?$CIconstr@
2DF32 ??_C@_0CG@IGFCNPBP@C?3?2code?2chipmunk2d?2src?2cpSlideJ@
2DF32 __real@0010000000000000
2DF32 cpConstraintIsSlideJoint
2DF32 cpSlideJointAlloc
2DF32 cpSlideJointGetAnchorA
2DF32 cpSlideJointGetAnchorB
2DF32 cpSlideJointGetMax
2DF32 cpSlideJointGetMin
2DF32 cpSlideJointInit
2DF32 cpSlideJointNew
2DF32 cpSlideJointSetAnchorA
2DF32 cpSlideJointSetAnchorB
2DF32 cpSlideJointSetMax
2DF32 cpSlideJointSetMin
313CC ??_C@_0CB@GIALDHPN@Constraint?5is?5not?5a?5SimpleMotor@
313CC ??_C@_0CG@BMPFBONL@cpConstraintIsSimpleMotor?$CIconst@
313CC ??_C@_0CH@PGGCEHCF@C?3?2code?2chipmunk2d?2src?2cpSimple@
313CC cpConstraintIsSimpleMotor
313CC cpSimpleMotorAlloc
313CC cpSimpleMotorGetRate
313CC cpSimpleMotorInit
313CC cpSimpleMotorNew
313CC cpSimpleMotorSetRate
32A38 ??_C@_0BB@JHONNNIE@friction?5?$DO?$DN?50?40f@
32A38 ??_C@_0BD@EPEOOABE@elasticity?5?$DO?$DN?50?40f@
32A38 ??_C@_0BG@BAPEDPDD@?$CBcpShapeActive?$CIshape?$CJ@
32A38 ??_C@_0BK@BPFOOIMA@Friction?5must?5be?5postive?4@
32A38 ??_C@_0BN@BGELDALA@Shape?5is?5not?5a?5circle?5shape?4@
32A38 ??_C@_0BN@DNNMKLPM@Elasticity?5must?5be?5positive?4@
32A38 ??_C@_0BO@JNBKPKEK@Shape?5is?5not?5a?5segment?5shape?4@
32A38 ??_C@_0CB@ICDJEOAK@C?3?2code?2chipmunk2d?2src?2cpShape?4@
32A38 ??_C@_0CE@HCDGOBHG@shape?9?$DOklass?5?$DN?$DN?5?$CGcpCircleShapeC@
32A38 ??_C@_0CF@HCCPBLPC@shape?9?$DOklass?5?$DN?$DN?5?$CGcpSegmentShape@
32A38 ??_C@_0HC@GCNFDDNA@You?5cannot?5change?5the?5body?5on?5a@
32A38 ?cpShapeInit@@YAPEAUcpShape@@PEAU1@PEBUcpShapeClass@@PEAUcpBody@@UcpShapeMassInfo@@@Z
32A38 __real@3ee4f8b588e368f1
32A38 __real@3fe0000000000000
32A38 __xmm@00000000000000007ff0000000000000
32A38 __xmm@3ff00000000000000000000000000000
32A38 cpCircleShapeAlloc
32A38 cpCircleShapeGetOffset
32A38 cpCircleShapeGetRadius
32A38 cpCircleShapeInit
32A38 cpCircleShapeNew
32A38 cpCircleShapeSetOffset
32A38 cpCircleShapeSetRadius
32A38 cpSegmentShapeAlloc
32A38 cpSegmentShapeGetA
32A38 cpSegmentShapeGetB
32A38 cpSegmentShapeGetNormal
32A38 cpSegmentShapeGetRadius
32A38 cpSegmentShapeInit
32A38 cpSegmentShapeNew
32A38 cpSegmentShapeSetEndpoints
32A38 cpSegmentShapeSetNeighbors
32A38 cpSegmentShapeSetRadius
32A38 cpShapeCacheBB
32A38 cpShapeDestroy
32A38 cpShapeFree
32A38 cpShapeGetArea
32A38 cpShapeGetBB
32A38 cpShapeGetBody
32A38 cpShapeGetCenterOfGravity
32A38 cpShapeGetCollisionType
32A38 cpShapeGetDensity
32A38 cpShapeGetElasticity
32A38 cpShapeGetFilter
32A38 cpShapeGetFriction
32A38 cpShapeGetMass
32A38 cpShapeGetMoment
32A38 cpShapeGetSensor
32A38 cpShapeGetSpace
32A38 cpShapeGetSurfaceVelocity
32A38 cpShapeGetUserData
32A38 cpShapePointQuery
32A38 cpShapeSegmentQuery
32A38 cpShapeSetBody
32A38 cpShapeSetCollisionType
32A38 cpShapeSetDensity
32A38 cpShapeSetElasticity
32A38 cpShapeSetFilter
32A38 cpShapeSetFriction
32A38 cpShapeSetMass
32A38 cpShapeSetSensor
32A38 cpShapeSetSurfaceVelocity
32A38 cpShapeSetUserData
32A38 cpShapeUpdate
32A38 cpShapesCollide
3CA00 ??_C@_0CI@LKIEONLM@Constraint?5is?5not?5a?5rotary?5limi@
3CA00 ??_C@_0CL@KOPGMJD@cpConstraintIsRotaryLimitJoint?$CI@
3CA00 ??_C@_0CM@JPIFIFKE@C?3?2code?2chipmunk2d?2src?2cpRotary@
3CA00 cpConstraintIsRotaryLimitJoint
3CA00 cpRotaryLimitJointAlloc
3CA00 cpRotaryLimitJointGetMax
3CA00 cpRotaryLimitJointGetMin
3CA00 cpRotaryLimitJointInit
3CA00 cpRotaryLimitJointNew
3CA00 cpRotaryLimitJointSetMax
3CA00 cpRotaryLimitJointSetMin
3E912 ?cpCheckAxis@@YAEUcpVect@@000@Z
3E912 ?cpCheckPointGreater@@YAEUcpVect@@00@Z
3F010 ??_C@_0CD@HCBADPFN@Constraint?5is?5not?5a?5ratchet?5joi@
3F010 ??_C@_0CH@CIBCIAPI@cpConstraintIsRatchetJoint?$CIcons@
3F010 ??_C@_0CI@IOCLBBEC@C?3?2code?2chipmunk2d?2src?2cpRatche@
3F010 cpConstraintIsRatchetJoint
3F010 cpRatchetJointAlloc
3F010 cpRatchetJointGetAngle
3F010 cpRatchetJointGetPhase
3F010 cpRatchetJointGetRatchet
3F010 cpRatchetJointInit
3F010 cpRatchetJointNew
3F010 cpRatchetJointSetAngle
3F010 cpRatchetJointSetPhase
3F010 cpRatchetJointSetRatchet
414DC ?cpPolylineConvexDecomposition@@YAPEAUcpPolylineSet@@PEAUcpPolyline@@N@Z
414DC ?cpPolylineFree@@YAXPEAUcpPolyline@@@Z
414DC ?cpPolylineIsClosed@@YAEPEAUcpPolyline@@@Z
414DC ?cpPolylineSetAlloc@@YAPEAUcpPolylineSet@@XZ
414DC ?cpPolylineSetCollectSegment@@YAXUcpVect@@0PEAUcpPolylineSet@@@Z
414DC ?cpPolylineSetDestroy@@YAXPEAUcpPolylineSet@@E@Z
414DC ?cpPolylineSetFree@@YAXPEAUcpPolylineSet@@E@Z
414DC ?cpPolylineSetInit@@YAPEAUcpPolylineSet@@PEAU1@@Z
414DC ?cpPolylineSetNew@@YAPEAUcpPolylineSet@@XZ
414DC ?cpPolylineSimplifyCurves@@YAPEAUcpPolyline@@PEAU1@N@Z
414DC ?cpPolylineSimplifyVertexes@@YAPEAUcpPolyline@@PEAU1@N@Z
414DC ?cpPolylineToConvexHull@@YAPEAUcpPolyline@@PEAU1@N@Z
414DC __real@bff0000000000000
476FA ??_C@_0BE@JGPNANJI@0?5?$DM?$DN?5i?5?$CG?$CG?5i?5?$DM?5count@
476FA ??_C@_0BE@NKBBAMDL@Index?5out?5of?5range?4@
476FA ??_C@_0BL@GGFNPJLA@Shape?5is?5not?5a?5poly?5shape?4@
476FA ??_C@_0BL@JKMOEFBA@shape?9?$DOklass?5?$DN?$DN?5?$CGpolyClass@
476FA ??_C@_0CF@LPOLNKEC@C?3?2code?2chipmunk2d?2src?2cpPolySh@
476FA __real@fff0000000000000
476FA cpBoxShapeInit
476FA cpBoxShapeInit2
476FA cpBoxShapeNew
476FA cpBoxShapeNew2
476FA cpPolyShapeAlloc
476FA cpPolyShapeGetCount
476FA cpPolyShapeGetRadius
476FA cpPolyShapeGetVert
476FA cpPolyShapeInit
476FA cpPolyShapeInitRaw
476FA cpPolyShapeNew
476FA cpPolyShapeNewRaw
476FA cpPolyShapeSetRadius
476FA cpPolyShapeSetVerts
476FA cpPolyShapeSetVertsRaw
4DF1C ??_C@_0CB@GFPDOKDK@Constraint?5is?5not?5a?5pivot?5joint@
4DF1C ??_C@_0CF@KDGNGKAM@cpConstraintIsPivotJoint?$CIconstr@
4DF1C ??_C@_0CG@NNGOFJAJ@C?3?2code?2chipmunk2d?2src?2cpPivotJ@
4DF1C cpConstraintIsPivotJoint
4DF1C cpPivotJointAlloc
4DF1C cpPivotJointGetAnchorA
4DF1C cpPivotJointGetAnchorB
4DF1C cpPivotJointInit
4DF1C cpPivotJointNew
4DF1C cpPivotJointNew2
4DF1C cpPivotJointSetAnchorA
4DF1C cpPivotJointSetAnchorB
50A9A ??_C@_0BP@DIKMIKPC@Constraint?5is?5not?5a?5pin?5joint?4@
50A9A ??_C@_0CD@IKEJKCA@cpConstraintIsPinJoint?$CIconstrai@
50A9A ??_C@_0CE@FHBPCHOC@C?3?2code?2chipmunk2d?2src?2cpPinJoi@
50A9A cpConstraintIsPinJoint
50A9A cpPinJointAlloc
50A9A cpPinJointGetAnchorA
50A9A cpPinJointGetAnchorB
50A9A cpPinJointGetDist
50A9A cpPinJointInit
50A9A cpPinJointNew
50A9A cpPinJointSetAnchorA
50A9A cpPinJointSetAnchorB
50A9A cpPinJointSetDist
53A02 ?cpMarchHard@@YAXUcpBB@@KKNP6AXUcpVect@@1PEAX@Z2P6AN12@Z2@Z
53A02 ?cpMarchSoft@@YAXUcpBB@@KKNP6AXUcpVect@@1PEAX@Z2P6AN12@Z2@Z
56FCA ?ThreadProc@@YAIPEAX@Z
56FCA ?cpHastySpaceFree@@YAXPEAUcpSpace@@@Z
56FCA ?cpHastySpaceGetThreads@@YAKPEAUcpSpace@@@Z
56FCA ?cpHastySpaceNew@@YAPEAUcpSpace@@XZ
56FCA ?cpHastySpaceSetThreads@@YAXPEAUcpSpace@@K@Z
56FCA ?cpHastySpaceStep@@YAXPEAUcpSpace@@N@Z
56FCA ?pthread_cond_broadcast@@YAHPEAUpthread_cond_t@@@Z
56FCA ?pthread_cond_destroy@@YAHPEAUpthread_cond_t@@@Z
56FCA ?pthread_cond_init@@YAHPEAUpthread_cond_t@@PEBUpthread_condattr_t@@@Z
56FCA ?pthread_cond_signal@@YAHPEAUpthread_cond_t@@@Z
56FCA ?pthread_cond_wait@@YAHPEAUpthread_cond_t@@PEAU_RTL_CRITICAL_SECTION@@@Z
56FCA ?pthread_create@@YAHPEAPEAXPEBUpthread_attr_t@@P6APEAXPEAX@Z2@Z
56FCA ?pthread_join@@YAHPEAXPEAPEAX@Z
56FCA ?pthread_mutex_destroy@@YAHPEAU_RTL_CRITICAL_SECTION@@@Z
56FCA ?pthread_mutex_init@@YAHPEAU_RTL_CRITICAL_SECTION@@PEBUpthread_mutexattr_t@@@Z
56FCA ?pthread_mutex_lock@@YAHPEAU_RTL_CRITICAL_SECTION@@@Z
56FCA ?pthread_mutex_unlock@@YAHPEAU_RTL_CRITICAL_SECTION@@@Z
5CACE ?cpHashSetCount@@YAHPEAUcpHashSet@@@Z
5CACE ?cpHashSetEach@@YAXPEAUcpHashSet@@P6AXPEAX1@Z1@Z
5CACE ?cpHashSetFilter@@YAXPEAUcpHashSet@@P6AEPEAX1@Z1@Z
5CACE ?cpHashSetFind@@YAPEBXPEAUcpHashSet@@_KPEBX@Z
5CACE ?cpHashSetFree@@YAXPEAUcpHashSet@@@Z
5CACE ?cpHashSetInsert@@YAPEBXPEAUcpHashSet@@_KPEBXP6APEAX2PEAX@Z3@Z
5CACE ?cpHashSetNew@@YAPEAUcpHashSet@@HP6AEPEBX0@Z@Z
5CACE ?cpHashSetRemove@@YAPEBXPEAUcpHashSet@@_KPEBX@Z
5CACE ?cpHashSetSetDefaultValue@@YAXPEAUcpHashSet@@PEAX@Z
5F67A ??_C@_0CC@EMANDPKL@Constraint?5is?5not?5a?5groove?5join@
5F67A ??_C@_0CG@KMLOLKEK@cpConstraintIsGrooveJoint?$CIconst@
5F67A ??_C@_0CH@JGINDMKI@C?3?2code?2chipmunk2d?2src?2cpGroove@
5F67A cpConstraintIsGrooveJoint
5F67A cpGrooveJointAlloc
5F67A cpGrooveJointGetAnchorB
5F67A cpGrooveJointGetGrooveA
5F67A cpGrooveJointGetGrooveB
5F67A cpGrooveJointInit
5F67A cpGrooveJointNew
5F67A cpGrooveJointSetAnchorB
5F67A cpGrooveJointSetGrooveA
5F67A cpGrooveJointSetGrooveB
628EE ??_C@_0CE@LEAEGMOF@cpConstraintIsGearJoint?$CIconstra@
628EE ??_C@_0CF@CPBKBMCC@C?3?2code?2chipmunk2d?2src?2cpGearJo@
628EE cpConstraintIsGearJoint
628EE cpGearJointAlloc
628EE cpGearJointGetPhase
628EE cpGearJointGetRatio
628EE cpGearJointInit
628EE cpGearJointNew
628EE cpGearJointSetPhase
628EE cpGearJointSetRatio
6473A ??_C@_0CD@OOFLOKFE@Constraint?5is?5not?5a?5damped?5spri@
6473A ??_C@_0CH@MOLJEJLK@cpConstraintIsDampedSpring?$CIcons@
6473A ??_C@_0CI@DCMJEKFI@C?3?2code?2chipmunk2d?2src?2cpDamped@
6473A cpConstraintIsDampedSpring
6473A cpDampedSpringAlloc
6473A cpDampedSpringGetAnchorA
6473A cpDampedSpringGetAnchorB
6473A cpDampedSpringGetDamping
6473A cpDampedSpringGetRestLength
6473A cpDampedSpringGetSpringForceFunc
6473A cpDampedSpringGetStiffness
6473A cpDampedSpringInit
6473A cpDampedSpringNew
6473A cpDampedSpringSetAnchorA
6473A cpDampedSpringSetAnchorB
6473A cpDampedSpringSetDamping
6473A cpDampedSpringSetRestLength
6473A cpDampedSpringSetSpringForceFunc
6473A cpDampedSpringSetStiffness
68246 ??_C@_0CK@OCECFABC@Constraint?5is?5not?5a?5damped?5rota@
68246 ??_C@_0CN@MMMCCLNP@cpConstraintIsDampedRotarySprin@
68246 ??_C@_0CO@DHKPJPME@C?3?2code?2chipmunk2d?2src?2cpDamped@
68246 cpConstraintIsDampedRotarySpring
68246 cpDampedRotarySpringAlloc
68246 cpDampedRotarySpringGetDamping
68246 cpDampedRotarySpringGetRestAngle
68246 cpDampedRotarySpringGetSpringTorqueFunc
68246 cpDampedRotarySpringGetStiffness
68246 cpDampedRotarySpringInit
68246 cpDampedRotarySpringNew
68246 cpDampedRotarySpringSetDamping
68246 cpDampedRotarySpringSetRestAngle
68246 cpDampedRotarySpringSetSpringTorqueFunc
68246 cpDampedRotarySpringSetStiffness
6AD2A ??_C@_0BA@MPBMAGGE@maxBias?5?$DO?$DN?50?40f@
6AD2A ??_C@_0BB@IFGICIFL@maxForce?5?$DO?$DN?50?40f@
6AD2A ??_C@_0BC@KAIMOODF@errorBias?5?$DO?$DN?50?40f@
6AD2A ??_C@_0BK@MLEMNEAH@maxBias?5must?5be?5positive?4@
6AD2A ??_C@_0BL@NAOGOBNO@maxForce?5must?5be?5positive?4@
6AD2A ??_C@_0BM@EOAKJCHP@errorBias?5must?5be?5positive?4@
6AD2A ??_C@_0CG@BECOEBIA@C?3?2code?2chipmunk2d?2src?2cpConstr@
6AD2A ?cpConstraintInit@@YAXPEAUcpConstraint@@PEBUcpConstraintClass@@PEAUcpBody@@2@Z
6AD2A cpConstraintDestroy
6AD2A cpConstraintFree
6AD2A cpConstraintGetBodyA
6AD2A cpConstraintGetBodyB
6AD2A cpConstraintGetCollideBodies
6AD2A cpConstraintGetErrorBias
6AD2A cpConstraintGetImpulse
6AD2A cpConstraintGetMaxBias
6AD2A cpConstraintGetMaxForce
6AD2A cpConstraintGetPostSolveFunc
6AD2A cpConstraintGetPreSolveFunc
6AD2A cpConstraintGetSpace
6AD2A cpConstraintGetUserData
6AD2A cpConstraintSetCollideBodies
6AD2A cpConstraintSetErrorBias
6AD2A cpConstraintSetMaxBias
6AD2A cpConstraintSetMaxForce
6AD2A cpConstraintSetPostSolveFunc
6AD2A cpConstraintSetPreSolveFunc
6AD2A cpConstraintSetUserData
6CDAE ??_C@_07GKEPOBDJ@cpFalse@
6CDAE ??_C@_0CF@IKAMGAMO@C?3?2code?2chipmunk2d?2src?2cpCollis@
6CDAE ??_C@_0CM@LLMLMFGG@Internal?5Error?3?5Shape?5types?5are@
6CDAE ?cpCollide@@YA?AUcpCollisionInfo@@PEBUcpShape@@0IPEAUcpContact@@@Z
6CDAE __real@bfe0000000000000
6CDAE __xmm@00000000000000003ff0000000000000
76D6C ??_C@_0CA@BICGMHI@0?40f?5?$DM?$DN?5mass?5?$CG?$CG?5mass?5?$DM?5INFINITY@
76D6C ??_C@_0CA@LFFNMPOF@C?3?2code?2chipmunk2d?2src?2cpBody?4c@
76D6C ??_C@_0CC@LGKKMLJA@Mass?5must?5be?5positive?5and?5finit@
76D6C ??_C@_0CE@MHNJG@Moment?5of?5Inertia?5must?5be?5posit@
76D6C ??_C@_0DH@KGALPJPO@You?5cannot?5set?5the?5mass?5of?5kine@
76D6C ??_C@_0P@GCNFICLO@moment?5?$DO?$DN?50?40f@
76D6C ?cpBodyAccumulateMassFromShapes@@YAXPEAUcpBody@@@Z
76D6C ?cpBodyAddShape@@YAXPEAUcpBody@@PEAUcpShape@@@Z
76D6C ?cpBodyRemoveConstraint@@YAXPEAUcpBody@@PEAUcpConstraint@@@Z
76D6C ?cpBodyRemoveShape@@YAXPEAUcpBody@@PEAUcpShape@@@Z
76D6C cpBodyAlloc
76D6C cpBodyApplyForceAtLocalPoint
76D6C cpBodyApplyForceAtWorldPoint
76D6C cpBodyApplyImpulseAtLocalPoint
76D6C cpBodyApplyImpulseAtWorldPoint
76D6C cpBodyDestroy
76D6C cpBodyEachArbiter
76D6C cpBodyEachConstraint
76D6C cpBodyEachShape
76D6C cpBodyFree
76D6C cpBodyGetAngle
76D6C cpBodyGetAngularVelocity
76D6C cpBodyGetCenterOfGravity
76D6C cpBodyGetForce
76D6C cpBodyGetMass
76D6C cpBodyGetMoment
76D6C cpBodyGetPosition
76D6C cpBodyGetRotation
76D6C cpBodyGetSpace
76D6C cpBodyGetTorque
76D6C cpBodyGetType
76D6C cpBodyGetUserData
76D6C cpBodyGetVelocity
76D6C cpBodyGetVelocityAtLocalPoint
76D6C cpBodyGetVelocityAtWorldPoint
76D6C cpBodyInit
76D6C cpBodyIsSleeping
76D6C cpBodyKineticEnergy
76D6C cpBodyLocalToWorld
76D6C cpBodyNew
76D6C cpBodyNewKinematic
76D6C cpBodyNewStatic
76D6C cpBodySetAngle
76D6C cpBodySetAngularVelocity
76D6C cpBodySetCenterOfGravity
76D6C cpBodySetForce
76D6C cpBodySetMass
76D6C cpBodySetMoment
76D6C cpBodySetPosition
76D6C cpBodySetPositionUpdateFunc
76D6C cpBodySetTorque
76D6C cpBodySetType
76D6C cpBodySetUserData
76D6C cpBodySetVelocity
76D6C cpBodySetVelocityUpdateFunc
76D6C cpBodyUpdatePosition
76D6C cpBodyUpdateVelocity
76D6C cpBodyWorldToLocal
7F24E ??_C@_0CC@POEOCKMJ@C?3?2code?2chipmunk2d?2src?2cpBBTree@
7F24E __real@3fb99999a0000000
7F24E cpBBTreeAlloc
7F24E cpBBTreeInit
7F24E cpBBTreeNew
7F24E cpBBTreeOptimize
7F24E cpBBTreeSetVelocityFunc
89E04 ?cpArrayContains@@YAEPEAUcpArray@@PEAX@Z
89E04 ?cpArrayDeleteObj@@YAXPEAUcpArray@@PEAX@Z
89E04 ?cpArrayFree@@YAXPEAUcpArray@@@Z
89E04 ?cpArrayFreeEach@@YAXPEAUcpArray@@P6AXPEAX@Z@Z
89E04 ?cpArrayNew@@YAPEAUcpArray@@H@Z
89E04 ?cpArrayPop@@YAPEAXPEAUcpArray@@@Z
89E04 ?cpArrayPush@@YAXPEAUcpArray@@PEAX@Z
8AF2A ??_C@_0BE@MLLIKHMP@count?5?$DN?$DN?5arb?9?$DOcount@
8AF2A ??_C@_0CD@HOPIJKPC@C?3?2code?2chipmunk2d?2src?2cpArbite@
8AF2A ??_C@_0CF@JBGPAFFO@0?5?$DM?$DN?5i?5?$CG?$CG?5i?5?$DM?5cpArbiterGetCount@
8AF2A ??_C@_0DA@CFBNCHBE@The?5number?5of?5contact?5points?5ca@
8AF2A ??_C@_0EF@BHBCPIOF@Index?5error?3?5The?5specified?5cont@
8AF2A ?cpArbiterApplyCachedImpulse@@YAXPEAUcpArbiter@@N@Z
8AF2A ?cpArbiterApplyImpulse@@YAXPEAUcpArbiter@@@Z
8AF2A ?cpArbiterInit@@YAPEAUcpArbiter@@PEAU1@PEAUcpShape@@1@Z
8AF2A ?cpArbiterPreStep@@YAXPEAUcpArbiter@@NNN@Z
8AF2A ?cpArbiterUnthread@@YAXPEAUcpArbiter@@@Z
8AF2A ?cpArbiterUpdate@@YAXPEAUcpArbiter@@PEAUcpCollisionInfo@@PEAUcpSpace@@@Z
8AF2A cpArbiterCallWildcardBeginA
8AF2A cpArbiterCallWildcardBeginB
8AF2A cpArbiterCallWildcardPostSolveA
8AF2A cpArbiterCallWildcardPostSolveB
8AF2A cpArbiterCallWildcardPreSolveA
8AF2A cpArbiterCallWildcardPreSolveB
8AF2A cpArbiterCallWildcardSeparateA
8AF2A cpArbiterCallWildcardSeparateB
8AF2A cpArbiterGetBodies
8AF2A cpArbiterGetContactPointSet
8AF2A cpArbiterGetCount
8AF2A cpArbiterGetDepth
8AF2A cpArbiterGetFriction
8AF2A cpArbiterGetNormal
8AF2A cpArbiterGetPointA
8AF2A cpArbiterGetPointB
8AF2A cpArbiterGetRestitution
8AF2A cpArbiterGetShapes
8AF2A cpArbiterGetSurfaceVelocity
8AF2A cpArbiterGetUserData
8AF2A cpArbiterIgnore
8AF2A cpArbiterIsFirstContact
8AF2A cpArbiterIsRemoval
8AF2A cpArbiterSetContactPointSet
8AF2A cpArbiterSetFriction
8AF2A cpArbiterSetRestitution
8AF2A cpArbiterSetSurfaceVelocity
8AF2A cpArbiterSetUserData
8AF2A cpArbiterTotalImpulse
8AF2A cpArbiterTotalKE
91994 ??_C@_01EEMJAFIK@?6@
91994 ??_C@_05BPCAAOFH@7?40?43@
91994 ??_C@_0BD@HELCJHMM@Chipmunk?5warning?3?5@
91994 ??_C@_0BH@OFKBBFJD@?7Failed?5condition?3?5?$CFs?6@
91994 ??_C@_0CB@JFLKHDHH@Aborting?5due?5to?5Chipmunk?5error?3@
91994 ??_C@_0P@NHEGDOKI@?7Source?3?$CFs?3?$CFd?6@
91994 ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA
91994 ?cpLoopIndexes@@YAXPEBUcpVect@@HPEAH1@Z
91994 __local_stdio_printf_options
91994 __real@4008000000000000
91994 __real@400921fb54442d18
91994 __real@4010000000000000
91994 __real@4018000000000000
91994 __real@4028000000000000
91994 cpAreaForCircle
91994 cpAreaForPoly
91994 cpAreaForSegment
91994 cpCentroidForPoly
91994 cpConvexHull
91994 cpMessage
91994 cpMomentForBox
91994 cpMomentForBox2
91994 cpMomentForCircle
91994 cpMomentForPoly
91994 cpMomentForSegment
91994 cpVersionString
91994 fprintf
In the excerpt above you see that only the C++-mangled name is exported in the case of cpHastySpace
.
Tried a few things like ensuring that CP_EXPORT
is actually applied to relevant lines (and it was), also tried dropping the "force c++" part from cmake files. Really don't know why it doesn't work.
This was the only way that I found to make it work, but I don't know if it might be undesirable:
diff --git a/include/chipmunk/chipmunk.h b/include/chipmunk/chipmunk.h
index d98ba7e..6239d0d 100644
--- a/include/chipmunk/chipmunk.h
+++ b/include/chipmunk/chipmunk.h
@@ -124,6 +124,7 @@ typedef struct cpSpace cpSpace;
#include "cpConstraint.h"
#include "cpSpace.h"
+#include "cpHastySpace.h"
// Chipmunk 7.0.3
#define CP_VERSION_MAJOR 7