Macos Mac上的动态加载

Macos Mac上的动态加载,macos,dylib,Macos,Dylib,我是Mac电脑的新手,但我被指派在Mac电脑上修复一个dylib加载问题,有人能给我一些建议吗 我们的应用程序使用a.dylib,这取决于b.dylib。应用程序使用NSAddImage(文件路径,NSAddImage\u选项\u无)打开a.dylib 但是b.dylib与a.dylib不在同一文件夹中。因此,我想有些选项必须设置为NSAddImage,或者在构建a.dylib时,应该提供一个相对路径,以便在运行时加载a时,它知道在哪里搜索b.dylib您可以提供otool-la.dylib,o

我是Mac电脑的新手,但我被指派在Mac电脑上修复一个
dylib
加载问题,有人能给我一些建议吗

我们的应用程序使用
a.dylib
,这取决于
b.dylib
。应用程序使用
NSAddImage(文件路径,NSAddImage\u选项\u无)
打开
a.dylib


但是
b.dylib
a.dylib
不在同一文件夹中。因此,我想有些选项必须设置为
NSAddImage
,或者在构建
a.dylib
时,应该提供一个相对路径,以便在运行时加载a时,它知道在哪里搜索
b.dylib

您可以提供
otool-la.dylib
otool-lbdylib
的输出吗,
otool-la.dylib | grep LC_RPATH--context
,以及
otool-lb.dylib | grep LC_RPATH--context
,我找到了一个解决方法。使用install_name_tool-change将对fullpath b.dylib的引用更改为@loader_path/path/d.dylib可以解决此问题。