Как избежать включения общей базовой библиотеки несколько раз в XCode? - PullRequest
0 голосов
/ 01 ноября 2010

У меня есть libX, которая связана с libA, и libY, которая также связана с libA.Теперь мне нужно использовать libX и libY в одном проекте, чтобы они были связаны в одном приложении.В качестве аргумента, скажем, libA имеет размер 5 МБ, и я создаю приложение для iOS.

Я прочитал здесь , что в таких библиотеках нет конфликтов между библиотекамиситуация, потому что библиотека libA в этом примере будет включена как в libX, так и в libY.Но это также значительно увеличит размер приложения на 10 МБ вместо 5 МБ.

Что мне нужно сделать, чтобы дважды не включать libA в приложение?Для этого есть переключатель компилятора?

Кроме этого, могу ли я что-то сделать с точки зрения того, как библиотеки настроены и разделены на проекты XCode, чтобы я в итоге связал libA только один раз?Например, могу ли я собрать libX и libY без ссылки на libA, предполагая, что в финальном проекте будет добавлена ​​библиотека libA в качестве связанной библиотеки?

Обычно я просто собираю libA как динамическую библиотеку, но насколько я понимаюэто не разрешено на iOS.

Ответы [ 2 ]

2 голосов
/ 01 ноября 2010

AFAIK Неверно говорить, что "libX links to libA" для статических библиотек. Статическая библиотека - это просто архив объектных файлов. Фактическая ссылка обвиняет при подключении приложения. Так что никаких двойных библиотек.

0 голосов
/ 01 ноября 2010

удаляет (возможные) фазы связывания из зависимостей, затем связывает все необходимые библиотеки с конечным исполняемым файлом.

...