Есть ли лучший способ сделать ссылку на статическую библиотеку, специфичную для конфигурации, на iOS, чем OTHER_LINKER_FLAGS? - PullRequest
1 голос
/ 30 июня 2011

Ситуация: связывание с SDK (который я создаю), в котором есть версии Release, Debug и Distribution его статической библиотеки (файл .a). Кажется, в графическом интерфейсе XCode нет способа указать, что статическая библиотека используется только для данной конфигурации.

Я могу использовать «Другие флаги компоновщика» (OTHER_LDFLAGS) на панели «Построение» настроек цели или проекта, например:

-all_load -ObjC "${SRCROOT}/MySDKFolder/${CONFIGURATION}-universal/libMYsdk.a"

который кажется для работы. Просто интересно, если кто-нибудь знает лучший способ. (-all_load и -ObjC должны правильно связать категории ObjC).

На данный момент я использую gcc 4.2 (SDK по умолчанию для 4.3 sdk и 3.x.x Xcode).

1 Ответ

0 голосов
/ 02 июля 2011

Итак, оказалось, что я позволил интерфейсу Xcode сбить меня с толку.Если вы добавите общий путь поиска с переменными $ {CONFIGURATION}, а затем добавите один из статических экземпляров библиотеки в проект и наметите его, он будет делать правильные вещи и связываться с правильным, даже если вы получите информацию об этой библиотекев проекте он покажет вам конкретный путь.

Однако, если вы хотите, чтобы на самом деле были внесены изменения уведомления Xcode в одну из статических библиотек, вам нужно будет добавить ВСЕ версии вашей статической библиотеки.к проекту и цели (да, это будет похоже на связь со всеми тремя, не беспокойтесь!).

Чтобы Xcode обнаружил файл .a, измененный в результате фазы сценария сборки, которая у вас естьна самом деле иметь все исходные файлы, которые используются для построения .a-файла на панели ввода Run Script (боль!), чтобы не нужно было каждый раз запускать скрипт сборки;И все три варианта файла .a в области вывода, так что Xcode знает, что проверять после запуска вашего скрипта, чтобы увидеть, нужно ли повторно связать проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...