【问题标题】:Does @rpath work for looking up .dylibs that are loaded/called from another .dylib?@rpath 是否适用于查找从另一个 .dylib 加载/调用的 .dylib?
【发布时间】: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。这是正确的做法吗?

【问题讨论】:

    标签: xcode3.2 dlopen rpath


    【解决方案1】:

    经过几天的研究和反复试验,我发现我需要在我的所有 .dylib 上执行 -install_name 并使用 @rpath/dylibName.dylib 作为我打算使用相对路径的所有库的安装名称去寻找。

    【讨论】:

      猜你喜欢
      • 2017-12-12
      • 2019-06-23
      • 2018-10-20
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      相关资源
      最近更新 更多