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