2013-04-06 3 views
1

У меня есть библиотека C, код которой находится в say/repos1/clib. Я создаю это из командной строки, используя последний iOS sdk для создания clib.a (включая сборку отладки для симулятора), который я копирую в проект iOS, например, в/repos2/proj.Xcode - библиотека отладки, построенная за пределами проекта

Я использую эту установку в течение нескольких лет. В старой библиотеке C иногда может потребоваться некоторая отладка, и я был доволен тем фактом, что Xcode просто вступил в библиотечный код, который был вне проекта (внутри repos1), без какой-либо настройки - он просто сработал. Но это было до нескольких версий Xcode назад. Я не уверен, когда он изменился - возможно, когда они перешли от gcc к llvm? - так как мне очень редко нужно было отлаживать код C, но на некоторое время теперь я получаю разборку, когда пытаюсь отлаживать библиотеку C из проекта iOS (включая, по крайней мере, ссылки на имя файла C &). За несколько раз мне нужно отлаживать, это очень неудобно (я создаю временный проект, который включает в себя код C).

Итак, любая идея, почему это сработало раньше и не сейчас? Где я должен смотреть? Может быть, я создаю библиотеку C, возможно, в gcc я использовал флаг, который не имеет эквивалента в llvm (я могу найти и опубликовать старую команду сборки, которую я использовал, если она уместна)? Является ли проблема в Xcode и есть способ рассказать ей, где искать источники?

Спасибо!

Редактировать: Чтобы было ясно, я могу добавить библиотеку C либо в качестве источника, либо в качестве подпроекта в Xcode, однако по причинам, выходящим за рамки, это не полезно для этого конкретного проекта. Итак, может ли он работать, как раньше, с более старыми версиями Xcode? Если нет, было бы интересно узнать, почему нет.

ответ

0

Рекомендованный подход - создать проект библиотеки в Xcode, один для iOS (для него есть шаблон), а затем, когда вы получите это, чтобы добавить проект в приложение, убедитесь, что lib является зависимостью и связывается. Как это сделать, в Интернете есть много учебников.

Затем, когда iOS развивается и появляются новые архитектуры (armv7s), вы просто обновляете оба проекта.

+0

Существует хорошая причина, по которой библиотека обычно не добавляется в проект (и мне нужно создать временный проект, как вы говорите, только для отладки при необходимости раз в год или около того). Поэтому для специфики этого проекта так, как он работал раньше, было очень удобно, и я хотел бы посмотреть, смогу ли я вернуть его обратно. – Ecuador

0

Я боролся с той же проблемой.

Я попробовал сбросить в библиотеке/проекте приложения все параметры, связанные с дескрипцией символов, и скопировать проект приложения на тот же жесткий диск как проект библиотеки, но это не помогло.

В моем случае это была проблема с проектом приложения. Такая же библиотека может быть отлажена в другом проекте приложения с исходным кодом, так что это было ключом.

У меня было несколько версий одной и той же библиотеки в проекте приложения и задано только целевое членство для выбора, которое должно использоваться. Не уверен, что это может повлиять на мой проект приложения. Несмотря на то, что после удаления всех библиотек и копирования их в проект приложения я смог отлаживать библиотеки с доступом к исходному коду.

Смежные вопросы