如何 link 一个 dylib 与同一目录中的另一个 dylib?

How to link a dylib with another dylib in the same directory?

我正在将程序移植到 Mac。该程序使用了一个动态库,我使用 xcode 将其编译成一个 dylib。该库再次使用第二个库,特别是 libusb。我也把它编译成一个 dylib。

两个dylib在同一个文件夹,安装文件夹。但是,这不起作用。仅当我将第二个 libusb dylib 移动到 /usr/local/lib 文件夹时它才有效。我怎样才能使第一个库能够 link 与第二个库在同一个文件夹中?

我猜我需要编辑第一个库的运行路径,但我不知道要写什么才能使路径成为相对路径而不是绝对路径。

我相信您正在寻找 install_name_tool(应该在 /usr/bin/install_name_tool 中),它有助于在 macOS 二进制文件中重新建立 dylib 引用路径,这正是您所描述的问题。您可以 运行 将其作为构建阶段脚本来强制 dylib 的正确 rpath 给您带来麻烦。