我有一个外部lib&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上运行
答案 0 :(得分:1)
好的,我意识到第一个"依赖"这不是一个依赖,它更像是lib的名称。我也可以在使用
时看到它otool -D libspecial.dylib
@rpath/libspecial.dylib
所以命令错了。它可以用
修复install_name_tool -id libspecial.dylib libspecial.dylib