gpt4 book ai didi

dylib - OS X : dylib rpath wrong after compiling

转载 作者:行者123 更新时间:2023-12-05 07:58:23 35 4
gpt4 key购买 nike

我正在从源代码构建 cyrus sasl2 库。库安装在/usr/local/lib 中, header 安装在/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”比当前编码的路径长。难道我不能在以某种方式构建库时设置它吗?

谢谢。

最佳答案

install_name_tool -id "@rpath/libsasl2.dylib""/usr/local/lib/libsasl2.dylib" 会改变 libsasl2 的 LC_ID_DYLIB。动态库。当 postdrop 链接到它时,它将被添加到 postdrop 的 LC_LOAD_DYLIB。然后,您可以将 /usr/local/libLC_RPATH 条目添加到 postdrop,一切都会正常进行。

关于dylib - OS X : dylib rpath wrong after compiling,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24764884/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com