Runtime loading of shared libraries

7 vues (au cours des 30 derniers jours)
Natesh Srinivasan
Natesh Srinivasan le 14 Mai 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 commentaires
Natesh Srinivasan
Natesh Srinivasan le 15 Mai 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 le 15 Mai 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 ...)

Connectez-vous pour commenter.

Réponses (1)

Ashish Uthama
Ashish Uthama le 15 Mai 2013
Use ldconfig or use MATLAB's setenv.

Catégories

En savoir plus sur MATLAB Compiler dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by