Dyld: библиотека не загружена
Я пытаюсь связать библиотеку libssh2.1.dylib с моим проектом iPhone Xcode, но я получаю эту ошибку, когда пытаюсь связать ее. Если я не добавлю это в качестве основы, я получу ошибку Символы не найдены. Теперь /Users/Matt/Documents/Development/iPhoneApps/Portscanner/lib/libssh2.1.dylib не является правильным путем к этому файлу. Я скачал библиотеку из интернета, и это путь к компьютеру автора. У меня есть файл, расположенный в совершенно другом месте. Как мне изменить ссылку пути? Вот ошибка, которую я получаю:
dyld: Library not loaded: /Users/Matt/Documents/Development/iPhoneApps/PortScanner/lib/libssh2.1.dylib
Referenced from: /var/mobile/Applications/5353E047-05FE-42E4-8F32-617E8D02A11D/Port Scanner.app/Port Scanner
Reason: image not found
1 ответ
Вы можете использовать install_name_tool, чтобы изменить установленный путь к файлу.dylib:
Пример изменения имени установки:
install_name_tool -id <yourpath>/libssh2.1.dylib /Users/Matt/Documents/Development/iPhoneApps/Portscanner/lib/libssh2.1.dylib
- Первый параметр - это путь, который вы хотите
- Второй параметр - это реальный путь к файлу, поэтому перетащите файл из Finder.
Также вам может понадобиться изменить имена зависимостей, и вы можете использовать тот же инструмент для этого:
install_name_tool -change <old path> <new path> <library name>
Вы можете проверить, какие текущие имена используют otool. Таким образом, вы можете проверить изменение с помощью otool следующим образом:otool -D libssh2.1.dylib
и зависимости с otool -L libssh2.1.dylib
Или вы можете получить исходный код и перестроить его самостоятельно с текущим путем в нем.
Если вам нужен относительный путь, вам нужно изменить имя вашей установки на @ rpath / libssh2.1.dylib и добавить путь к настройкам вашего проекта.