无法更改 osx 上的@rpath

Unable to change @rpath on osx

我有一个外部库 'libspecial.dylib' 具有以下依赖项。

otool -L libspecial.dylib                                                                                                                          [11:20:59]
libspecial.dylib:
     @rpath/libspecial.dylib (compatibility version 1.0.0, current version 1.0.1)
     @rpath/libhelper.dylib  (compatibility version 1.0.0, current version 1.0.1)

因为@rpath 导致问题我有一个脚本用真实路径替换所有@rpath。

install_name_tool -change @rpath/libspecial.dylib /tmp/libspecial.dylib libspecial.dylib
install_name_tool -change @rpath/libhelper.dylib  /tmp/libhelper.dylib  libspecial.dylib

但这只是替换了第二个依赖(实际上还有更多的依赖,所有的都被替换了但不是第一个指向lib本身的):

otool -L libspecial.dylib
libspecial.dylib:
     @rpath/libspecial.dylib (compatibility version 1.0.0, current version 1.0.1)
     /tmp/libhelper.dylib    (compatibility version 1.0.0, current version 1.0.1)

我不知道为什么我不能更改第一个依赖项。有什么想法吗?

运行 在 OSX 10.11.1

好吧,我意识到第一个 "dependency" 本身并不是依赖项,它更像是库的名称。我用

的时候也能看到
otool -D libspecial.dylib
    @rpath/libspecial.dylib

所以命令是错误的。可以用

修复
install_name_tool -id libspecial.dylib libspecial.dylib