Ссылка на статическую библиотеку, которая требует каркасов - PullRequest
2 голосов
/ 04 июля 2011

У меня есть основной проект и несколько небольших подпроектов. Небольшие проекты содержат как автономное приложение Cocos2d, так и статическую библиотеку, содержащую только классы, относящиеся к основному проекту (все подпроекты используют инфраструктуру Cocos2D). Основной проект зависит от статических библиотек. Я думаю, что этот подход теоретически обоснован, но на практике он не работает.

Симптом, который я вижу, заключается в следующем: когда код выполняется как часть основного проекта, значения препроцессора работают. Когда я запускаю приложение подпроекта, оно запускается, как и ожидалось.

Я установил параметр компоновщика -all_load в основной цели. Это потому, что классы в подпроектах упоминаются только в файлах nib. Без -all_load классы «оптимизируются» вне основной цели, так как компилятор неправильно определяет код как лишний.

Я связал все подпроекты с необходимыми им .frameworks.

Это поправимо или этот подход обречен на провал? Как еще я могу управлять этими проектами без статических библиотек? Другие разработчики работают над подпроектами, и подход со статической библиотекой не позволяет нам взаимодействовать друг с другом.

Обновление

Чтение этого вопроса заставляет меня думать, что я должен был сделать перерыв намного раньше! Вопрос не очень хорошо объясняет проблему (или не имеет большого смысла!). Проблема связана с тем, как использовать подпроекты для организации кода. Я сейчас почти решил проблему. Я, вероятно, напишу пост в блоге, когда полностью его решу.

1 Ответ

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

Поскольку статические библиотеки «запекаются» в вашем исполняемом файле, вам не нужно беспокоиться об их связывании больше, чем о своем исполняемом файле.

Просто настройте зависимости проекта, чтобысначала строится зависимая структура (поэтому папка .framework / Headers заполняется правильно), затем библиотеки, а затем ваше приложение.Я сделал это в нескольких приложениях с большим успехом.

...