У меня есть внешняя библиотека libspecial.dylib lib со следующими зависимостями.Невозможно изменить @rpath на osx
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
Первая ссылка - это ссылка на библиотеку, поэтому я не ожидал, что вы ее сможете изменить. Тем не менее, я бы не ожидал, что он будет иметь @ rpath/в начале. Все дилибы, которые я видел, начинаются со своего имени. Можете ли вы установить его на libspecial.dylib? – TheDarkKnight
Вы правы, в последней версии этой библиотеки ссылка на себя была без @rpath, и все сработало нормально. Но, к сожалению, я не могу изменить его, а не /tmp/libspecial.dylib, а не libspecial.dylib. – Marcel
Не влияет ли это на путь загрузки по умолчанию, когда бинарные ссылки связаны с ним? Я не думаю, что это важно во время работы. – trojanfoe