我无法弄清楚为什么我的二进制文件没有加载。它是由 MATLAB 加载的 dylib(MEX 文件),并链接到不同位置的许多 dylib。MATLAB 告诉我它无法加载 MEX 文件,但我无法弄清楚它找不到哪些依赖项。
有人对如何调试这样的东西有任何建议吗?
在 Linux 上,ldd
是调试此问题的完美工具。人们一直说otool -L
MacOS相当于Linux ldd
,但事实并非如此。ldd
实际上会查找库,并告诉您可以找到哪些库,以及在哪里找到它们。otool -L
只告诉您需要链接哪些库。它不会努力检查它们是否在那里。它甚至不会告诉您使用@rpath
.
otool -l
(小写 L)为您提供“加载命令”的转储,在那里您可以看到LC_RPATH
命令,这些命令确定了@rpath
搜索库的位置。但是这些无法向我解释找不到哪个依赖项。