Runtime loading of shared libraries

24 views (last 30 days)
Natesh Srinivasan
Natesh Srinivasan on 14 May 2013
Hello Guys,
I have written a c++ library (lest us say libMyLIB.so) that I have wrapped using mex.
Now, when I start matlab from the linux terminal, the calls to the library work fine.
However, when I start matlab from the icon in the unity applet, I get an error which says " cannot open shared library libxxxx.so", where libxxx is needed by libMYLIB.so.
I assume that this is because libxxx.so is in an unconventional path that is specified in the ~/.bashrc file.
I was wondering if there is any way I could specify something inside Matlab to make it look into other paths in the sytem.
Setting $LD_LIBRARY_PATH in matlab seems to make no difference. Are there any other path variables that need to be set.
Any help would be appreciated.
  3 Comments
Natesh Srinivasan
Natesh Srinivasan on 15 May 2013
I use matlab's setenv and I verfied checking the current value of $LD_LIBRARY_PATH.
I also tried the ldconfig way to make sure that the path is globally set across for all users in the system. But still the same error :(
Ashish Uthama
Ashish Uthama on 15 May 2013
I would try running !ldd libMyLIB.so in both scenarios to see if it tells me something. To confirm - you launch MATLAB from unity, call the mex file from the MATLAB command prompt, and you get a system error? (I dont use unity, so I am not sure if it sandboxes applications or has a different uid.. or ...)

Sign in to comment.

Answers (1)

Ashish Uthama
Ashish Uthama on 15 May 2013
Use ldconfig or use MATLAB's setenv.

Categories

Find more on Write C Functions Callable from MATLAB (MEX Files) in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!