我正在从源代码构建 cyrus sasl2 库。库安装在 /usr/local/lib 中,头文件安装在 /usr/local/include/sasl 中,这是正确的。
但是,当我运行尝试使用它们的应用程序时,我得到:
dyld: Library not loaded: /libsasl2.dylib
Referenced from: /usr/sbin/postdrop
Reason: image not found
Trace/BPT trap: 5
在 lib 上运行 otool -L 会显示错误的相对路径:
libsasl2.dylib:
/libsasl2.dylib (compatibility version 3.0.0, current version 3.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
/usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 1.0.0)
如何更改 make 编译库的方式以便编码正确的 rpath?我阅读了有关 install_name_tool 以在库中更改它的信息,但使用“-change”似乎不起作用,因为正确的路径“/usr/local/lib/libsasl2.dylib”比当前编码的路径长。我不应该在我以某种方式构建库时设置它吗?
谢谢。