electronvolt
electronvolt copied to clipboard
Specify what version of newton-dynamics is required
I took newton sources from here and built newton-3.14 on Linux but when run electronvolt with compiled libraries, it says
Missing Symbol NewtonConvexCollisionCalculateBuoyancyAcceleration
Missing Symbol NewtonHeightFieldSetHorizontalDisplacement
Missing Symbol NewtonBodyCalculateInverseDynamicsForce
Missing Symbol NewtonCreateInverseDynamics
Missing Symbol NewtonInverseDynamicsDestroy
Missing Symbol NewtonInverseDynamicsGetRoot
Missing Symbol NewtonInverseDynamicsGetNextChildNode
Missing Symbol NewtonInverseDynamicsGetFirstChildNode
Missing Symbol NewtonInverseDynamicsGetBody
Missing Symbol NewtonInverseDynamicsGetJoint
Missing Symbol NewtonInverseDynamicsCreateEffector
Missing Symbol NewtonInverseDynamicsDestroyEffector
Missing Symbol NewtonInverseDynamicsAddRoot
Missing Symbol NewtonInverseDynamicsAddChildNode
Missing Symbol NewtonInverseDynamicsAddLoopJoint
Missing Symbol NewtonInverseDynamicsEndBuild
Missing Symbol NewtonInverseDynamicsUpdate
Missing Symbol NewtonUserJointCalculateRowZeroAccelaration
Missing Symbol NewtonUserJointSetRowAsInverseDynamics
Missing Symbol NewtonUserJointSetRowSpringDamperAcceleration
Missing Symbol NewtonUserJointSubmitImmediateModeConstraint
Segmentation fault
It seems that these functions are from some old version of newton, I'll remove them. But it's strange that the loader crashes on missing symbols, it should just print warnings and allow execution.
Here's a backtrace from debug build:
#0 0x0000000000000000 in ?? ()
#1 0x000055555579e4de in soloud.Soloud.create() () at ../../.dub/packages/bindbc-soloud-0.1.2/bindbc-soloud/src/soloud.d:39
#2 0x000055555577ae32 in main.TestGame.this(uint, uint, bool, immutable(char)[], immutable(char)[][]) (this=0x555555a4e708, args=..., title=..., fullscreen=false, h=900, w=1600)
at src/main.d:444
#3 0x000055555577fcae in std.conv.emplace!(main.TestGame, int, int, bool, immutable(char)[], immutable(char)[][]).emplace(main.TestGame, ref int, ref int, ref bool, ref immutable(char)[], ref immutable(char)[][]) (_param_5=..., _param_4=..., _param_3=@0x7fffffffd9c8: false, _param_2=@0x7fffffffd9f0: 900, _param_1=@0x7fffffffd9f8: 1600, chunk=0x555555a4e708)
at /usr/include/dmd/phobos/std/conv.d:5216
#4 0x000055555577fc43 in std.conv.emplace!(main.TestGame, int, int, bool, immutable(char)[], immutable(char)[][]).emplace(void[], ref int, ref int, ref bool, ref immutable(char)[], ref immutable(char)[][]) (_param_5=..., _param_4=..., _param_3=@0x7fffffffd9c8: false, _param_2=@0x7fffffffd9f0: 900, _param_1=@0x7fffffffd9f8: 1600, chunk=...)
at /usr/include/dmd/phobos/std/conv.d:5299
#5 0x000055555577fbe2 in dlib.core.memory.allocate!(main.TestGame, int, int, bool, immutable(char)[], immutable(char)[][]).allocate(int, int, bool, immutable(char)[], immutable(char)[][], immutable(char)[], int) (line=466, file=..., _param_4=..., _param_3=..., _param_2=false, _param_1=900, _param_0=1600) at ../../.dub/packages/dlib-0.22.0/dlib/dlib/core/memory.d:194
#6 0x000055555577afff in D main (args=...) at src/main.d:466