Совместимость Xcode 3/4 при обращении к статическим библиотекам - PullRequest
1 голос
/ 27 октября 2011

У нас есть несколько машин для разработки, некоторые из которых работают под Xcode 3.2.5, а другие - под Xcode 4.2. У нас есть статическая библиотека, на которую ссылается наш проект. Он содержит категории Objective C, поэтому нам нужно использовать флаг -force_load с указанием пути к библиотеке.

Проблема, с которой мы сталкиваемся, заключается в том, что в Xcode 4.2 библиотека связана не с тем путем, который мы указали в -force_load. Это вызывает повторяющиеся ошибки символов, так как он пытается связать две копии одной и той же библиотеки.

Путь Xcode 4.2 ссылки из: / Users / USERNAME / Library / Developer / Xcode / DerivedData / Projectname-ehxeazvigqrpvogkxlkcmdzpisdw / Build / Products / КОНФИГУРАЦИЯ-ПЛАТФОРМА /

, тогда как Xcode 3.2.5 ссылается на это: PROJECT_ROOT_OF_STATIC_LIBRARY / сборки / КОНФИГУРАЦИЯ-ПЛАТФОРМА /

Есть ли способ заставить Xcode 4.2 использовать те же места, что и Xcode 3.2.5, при связывании статических библиотек, чтобы мы могли использовать опцию компоновщика force_load? Если нет, то может ли кто-нибудь предложить альтернативное решение, чтобы Xcode 3.2.5 и 4.2 хорошо играли вместе?

1 Ответ

0 голосов
/ 27 октября 2011

Для меня это звучит так, будто вы делаете что-то нелегко.

Я никогда не использовал -force_load для загрузки статических библиотек.В библиотеках, которые я использую, все они хранятся в виде каркасов в каталоге в моей системе, который отделен от проекта.Затем я использую стандартные диалоговые окна добавления фреймворков XCode, чтобы перенести их в проект, и "-ObjC -all_load", чтобы убедиться, что они работают и категории активны.

Я успешно переместил несколько проектов из XCode 3 в 4, и у меня не было проблемы, о которой вы упоминали.Я подозреваю, что если вы прекратите использовать -force_load, ваши проблемы исчезнут.

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