在OS X上使用相对路径或库名称引用共享库?

徐赫德

似乎OS X上的共享库被引用为绝对路径:

$ otool -L /bin/ls
/bin/ls:
    /usr/lib/libutil.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

在Linux上,库通常被称为它们的名称。我可以改变这种行为吗?

谢谢!

编辑:我检查了FreeBSD,它的工作方式与Linux相同。我想知道这是否仅是链接程序的问题,但是在OS X上使用gcc(而不是clang)之后,它没有任何改变。

题词

您可以使用修复这些路径install_name_tool最好使用-id选项在共享库上执行此操作,但是您也可以使用来修复可执行文件-changeman install_name_tool详情请咨询

我将共享库上的安装名称更改为@loader_path/libfoo.1.2.3.dyliblibfoo.1.2.3.dylib随可执行文件重新分发如果您在网上搜索,rpath executable_path loader_path将会找到有关这些内容的文档@paths

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章