Как правильно указать пути запуска, пути поиска и имена установки?

У меня есть коллекция проектов, которые я компилирую как динамические библиотеки. Каждая из этих .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?
У кого-нибудь есть идеи, что я могу делать неправильно?

13
задан jww 17 December 2015 в 21:00
поделиться