【发布时间】:2011-10-07 22:39:22
【问题描述】:
我刚刚发现了使用 dlopen 加载 .dylib 文件的 @rpath,需要一些帮助来理解它们。我在 OSX 机器上使用 Xcode 3.2.5。
我有几个调用其他 .dylib 的 .dylib,它们也相互调用。 @rpath 似乎适用于加载的初始 .dylib,但是一旦我使用另一个 .dylib 进行 dlopen 调用,该 .dylib 使用先前使用 @rpath 找到并加载的第一个 .dyblib 文件,dlopen 将失败,说它可以'找不到原始的 .dylib。
@rpath 是否仅适用于与 dlopen 一起使用的文件,还是也用于解决正在打开的 dylib 文件内部的依赖关系?
更新:
我的进一步发现导致我使用 install_name_tools 来更改相互依赖关系,以使其具有@rpath。这是正确的做法吗?
【问题讨论】: