[PD] dynamic loading in external

David Medine dmedine at ucsd.edu
Fri Jan 9 22:34:13 CET 2015


I am writing an extern that uses a 3rd party shared object library. I 
keep getting a
"cannot open shared object file: No such file or directory"
posted to the Pd console when I load the extern. The library is linking 
properly in my makefile (as far as I can tell) and the .so file that I 
want the extern to load is in the same folder as the extern. I have also 
put the path to the unfound library in Pd's path list.

I have also compiled a different, plain old dylib/shared object/dll 
using this very same library for use in python and it works perfectly. 
I've also written C and C++ programs that link to this library at run 
time and they work perfectly too. Does anybody have any idea why Pd 
hates it?

I have also done dynamic loading successfully in a Pd extern using the 
sphinx library. The only difference there was that there the sphinx 
libraries were installed in a standard library directory (ie /usr/lib or 
something like that) . I can't try to do this right now because I don't 
have su rights on the computer I am using. My understanding, though, is 
that linux should be searching for dynamic libraries in the directory 
that the parent application is in. So I also tried putting my unfound 
library in pd-0-whatever/bin. No joy.

I have tried compiling using gcc and g++ on linux. I've also tried to 
link with those compilers as well as ld (which is called by those 
compilers if you link with them). I haven't tried any other OSs yet.

Thanks in advance,
David



More information about the Pd-list mailing list