I have not been able to figure out why my binary is not loading. It is a dylib loaded by MATLAB (MEX-file), and links to quite a few dylibs in different locations. MATLAB tells me it cannot load the MEX-file, but I cannot figure out which of its dependencies it cannot find.
Does anybody have any suggestions for how to debug something like this?
On Linux, ldd
is the perfect tool to debug this problem. People keep saying that otool -L
is the MacOS equivalent to the Linux ldd
, but this is not true. ldd
actually looks for the libraries, and tells you which ones can be found, and where they were found. otool -L
only tells you what libraries are needed to link against. It does not effort to check to see if they are there. It doesn't even tell you where libraries are searched for when they use @rpath
.
otool -l
(lowercase L) gives you a dump of the "load commands", there you can see the LC_RPATH
commands, which establish where @rpath
libraries are searched for. But these have not been able to explain to me which dependency is not found.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…