Я рассмотрел несколько связанных вопросов и, похоже, не могу найти для себя решения.
В основном я использую libmp3lame.dylib в моем проекте Xcode. В процессе установки lame был создан .dylib и помещен в usr / local / lib, а чтобы Xcode собрал и запустил проект, я изменил пути поиска библиотеки, чтобы включить указанную выше папку. Это прекрасно работает.
Теперь пришло время создать релизную версию, и я хочу включить .dylib в пакет, чтобы пользователю не приходилось мириться с фазой установки или чем-то подобным. Я создал фазу копирования файлов цели, и это выгружает .dylib в папку Frameworks в содержимом пакета. Однако запуск otool в двоичном файле показывает, что вместо использования .dylib внутри пакета компилятор связал его с версией usr / local / lib (даже если я удалю эту версию).
Глядя на другие результаты в выводе otool, я обнаружил, что внутри пакета связаны другие фреймворки, но не .dylib. Глядя на свойства этих фреймворков и .dylib в Xcode, я не вижу никаких различий, кроме типа файла.
Мой поиск подсказывает, что мне нужно использовать rpath или что-то подобное, но я не знаю, где это применить в Xcode.
Мой совет: посмотрите на выходные данные сборки, как на самом деле работает ld?