Я разрабатываю приложение Cocoa с использованием последней версии Xcode 4, я хочу связать динамические библиотеки с моим проектом (dylibs
).Почему install_name_tool и otool необходимы для библиотек Mach-O в Mac Os X?
Я читал где-то, что добавления библиотек в моем проекте было недостаточно, поскольку мне нужно было запустить install_name_tool
и otool
, чтобы мой проект использовал библиотеки, которые были включены в мой проект.
Я прочитал страницы руководства для install_name_tool
, но я не понимаю, ПОЧЕМУ я должен это делать.
Как работают библиотеки? Особенно заинтересованы в той части, где приложения и библиотеки имеют пути, указывающую на конкретные места в моей машине, как /usr/local/lib/mylibrary.dylib
при запуске otool -L
'otool -L' также полезен для отображения имен и разделяемых библиотек (которые вы можете изменить с помощью' install_name_tool'. – par
Примечание: install_name_tool терпит неудачу, всегда проверяйте, что это действительно то, что вы ему сказали (используя 'otool -L'. –
geowar
Кажется, что атрибуты в dylib действительно не имеют значения. Они используются только при связывании исполняемого файла с dylib для копирования атрибутов из dylib в исполняемый файл. Для случай, когда у вас уже есть исполняемый файл, связанный с dylib, но вам нужно изменить пути, тогда достаточно отредактировать только исполняемый файл, чтобы установить LC_LOAD_DYLIB и, возможно, LC_RPATH. Второй нужен, только если первый имеет @rpath в Это. –