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:

http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/install_name_tool.1.html

Пример изменения имени установки:

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 и добавить путь к настройкам вашего проекта.

Другие вопросы по тегам