У меня есть набор проектов, которые я компилирую как динамические библиотеки. Каждый из этих .dylibs зависит от других различных .dylib, которые я хотел бы разместить в разных других каталогах (например, некоторые на исполняемом пути, некоторые на пути загрузчика, некоторые на фиксированном пути).
Когда я запускаю otool -L
в скомпилированных библиотеках, я получаю список путей к этим зависимостям, но я знаю, как эти пути устанавливаются/определяются. Они почти кажутся псевдослучайными. Я потратил несколько часов на использование "Настройки сборки" в Xcode, чтобы попытаться изменить эти пути (w/@rpath, @executable_path, @loader_path и т.д.), Но я не могу ничего изменить (как проверено при запуске otool -L
). Я даже не совсем уверен, где добавить эти флаги и не понимаю разницу между следующим или как правильно их использовать:
Связывание - "Имя установки динамической библиотеки"
Связывание - "Пути поиска пути"
Связывание - "Другие связанные флагов"
Пути поиска - "Пути поиска библиотеки"
Когда я запускаю install_name_tool -change
в различных библиотеках, я могу успешно изменить пути поиска пути выполнения (опять же, как это подтверждается при запуске otool -L
для подтверждения).
Я запускаю Xcode 4.2, и я очень близок к тому, чтобы отказаться от него и просто использовать post-build script, который запускает имя_страницы_приложения, чтобы внести изменения. Но это исправление халата, и я бы предпочел не делать этого.
Где я могу узнать, как устанавливаются пути поиска/запуска для зависимостей dylib?
У кого-нибудь есть идеи о том, что я могу делать неправильно?