gpt4 book ai didi

macos - MacOSX:哪些动态库通过二进制链接?

转载 作者:行者123 更新时间:2023-12-04 03:48:46 24 4
gpt4 key购买 nike

我无法弄清楚为什么我的二进制文件无法加载。它是由MATLAB加载的dylib(MEX文件),并链接到位于不同位置的许多dylib。 MATLAB告诉我它无法加载MEX文件,但是我无法弄清它找不到哪个依赖项。

有人对如何调试这样的东西有任何建议吗?

在Linux上,ldd是调试此问题的理想工具。人们一直说otool -L是与Linux ldd等效的MacOS,但这不是事实。 ldd实际上会查找这些库,并告诉您可以找到哪些库以及在何处找到它们。 otool -L仅告诉您需要链接的库。无需检查它们是否在那里。它甚至没有告诉您使用@rpath时在哪里搜索库。

otool -l(小写的L)为您提供了“加载命令”的转储,您可以在其中看到LC_RPATH命令,这些命令确定了在哪里搜索@rpath库。但是这些无法向我解释未找到哪个依赖项。

最佳答案

在运行matlab之前,请尝试设置以下环境变量:

export DYLD_PRINT_LIBRARIES=1
export DYLD_PRINT_LIBRARIES_POST_LAUNCH=1
export DYLD_PRINT_RPATHS=1


运行 man dyld以获得更多可能性。

您也可以只为matlab命令设置变量,如下所示:

DYLD_PRINT_LIBRARIES=1 DYLD_PRINT_LIBRARIES_POST_LAUNCH=1 DYLD_PRINT_RPATHS=1 matlab

关于macos - MacOSX:哪些动态库通过二进制链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45464584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com