0 votes

I need to add an external library to my custom module, and I am getting undefined references because I don't know how to do the linking...I'm guessing it's in SCsub. Is there an example somewhere of how this is supposed to be done?

The library is in /lib64/libisense.so for 64 bit and /lib/libisense.so for 32.

asked Apr 26, 2016 in Engine by lehthanis (34 points)

This a is scons doc. Not sure if it is old, but hopefully it helps.

It doesn't really help, because what I ended up doing is adding:

env.Append(LIBS=File('libisense.so'))

to the SCsub...and it compiles, and shows up in the editor...the template also compiles...but when I run a game that uses the module I get this error:

/home/robbie/Documents/Programming/Godot/godot/bin/godot.x11.tools.64: error while loading shared libraries: modules/intersense/libisense.so: cannot open shared object file: No such file or directory

There's no where that explains how to do this with modules and how to do this in a clean cross platform method. It's really holding this engine back I think, because from what I can tell, either no one knows how to do this, or no one is sharing how to do this...

Maybe try it with env.Append(LINKFLAGS=["-lisense"])

I did manage to get it to compile in linux by manually putting the .so files in my /usr/lib folder which is not recommended and changing the line to:

env.Append(LIBS=['isense'])

but that doesn't solve the windows problem where the manufacturer only provides a .dll.

The whole thing, with the .so's and .dll's can be found at:
http://www.confractus.com/intersensemodule.zip if you want to give it a shot.

Please log in or register to answer this question.

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.