Невозможно изменить @rpath на 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
Но это только заменяет вторую зависимость (на самом деле есть больше зависимостей, все заменяются, но не первая, которая указывает на саму библиотеку):
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
1 ответ
Решение
Хорошо, я понял, что первая "зависимость" не является зависимостью как таковой, это скорее имя библиотеки. Я также вижу это при использовании
otool -D libspecial.dylib
@rpath/libspecial.dylib
Так что команда была просто неправильной. Это можно исправить с помощью
install_name_tool -id libspecial.dylib libspecial.dylib