OSX: изменение пути .framework

Патенты на программное обеспечение

5
задан psychotik 20 August 2009 в 06:09
поделиться

1 ответ

Вы на правильном пути.

Это происходит потому, что в OS X "имя_установки" записывается в библиотеке при ее создании. Это имя_установки затем копируется в любое приложение, которое связывается с ним.

«Лучший» способ решить проблему - изменить исходный код фреймворка, чтобы флаг компоновщика - имя_установки устанавливался, когда фреймворк построен.

Однако это часто невозможно, либо потому, что у вас нет исходных текстов, либо потому, что во фреймворке огромное количество вещей autoconf, что делает это практически невозможным. В этом случае используйте install_name_tool с флагом -id, чтобы изменить записанное имя_установки в библиотеке.

Итак, с учетом всего сказанного, что вы измените на?

@ executable_path /. ./Frameworks/Foo. framework / Foo (или другое имя)

Итак, из каталога, содержащего Foo.framework:

install_name_tool -id @executable_path/../Frameworks/Foo.framework/Foo Foo.framework/Foo

Во время выполнения загрузчик разрешит @executable_path путь к исполняемому файлу приложения. Очевидно, вам также необходимо настроить этап сборки Copy Files, чтобы скопировать фреймворк в папку Framework пакета приложений.

Вы также можете использовать install_name_tool с флагом -change, чтобы изменить имя_установки библиотеки после того, как он уже был связан с приложением, но это явно неоптимально. Исправьте это перед установкой ссылки.

Очевидно, вам также необходимо настроить этап сборки Copy Files, чтобы скопировать фреймворк в папку Framework пакета приложения.

Вы также можете использовать install_name_tool с флагом -change, чтобы изменить имя_установки библиотеки после того, как он уже был связан с приложением, но это явно неоптимально. Исправьте это перед установкой ссылки.

Очевидно, вам также необходимо настроить этап сборки Copy Files, чтобы скопировать фреймворк в папку Framework пакета приложений.

Вы также можете использовать install_name_tool с флагом -change, чтобы изменить имя_установки библиотеки после того, как он уже был связан с приложением, но это явно неоптимально. Исправьте это перед установкой ссылки.

7
ответ дан 14 December 2019 в 08:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: