iOS - файл создан для архива, который не связан с архитектурой (i386) - PullRequest
9 голосов
/ 24 октября 2011

У меня есть несколько статических библиотек, которые я хочу использовать в своем приложении для iphone.Когда я пытаюсь запустить симулятор, я получаю ошибки связывания.Я новичок в разработке для iOS, и я столкнулся с этой проблемой при связывании с библиотеками, которые я создал ранее;

file was built for archive which is not the architecture being linked (i386)

Что означает, что все функции, на которые я ссылаюсь из этих библиотек, дают мне следующее:

undefined symbols for architectyre i386

Я не уверен, что настроить, чтобы сделать это правильно.Статические библиотеки созданы для armv7, поддерживаемые платформы armv6 armv7.

Ответы [ 2 ]

12 голосов
/ 26 января 2012

Я отсортировал очень похожую ошибку со статической библиотекой, которую я собирал для iPad. Я полагаю, что моим решением было добавить «i386» в настройку «Архитектуры» для проекта (нажмите «Проект» -> «Настройки сборки» -> «Архитектуры» - или это были допустимые архитектуры?) И нажмите значок «+», введите «i386». "в выделенной строке). В любом случае это должно вас сблизить.

О, еще одно предостережение, я читал, что мы должны установить "Только для активной архитектуры" на "Нет". Он уже был установлен для меня, но вы можете проверить это.

2 голосов
/ 03 января 2013

После борьбы с этой же проблемой и выполнения всех принятых ответов об обновлении настроек сборки, очистке пути поиска компоновщика и т. Д. Я наконец нашел ответ, который работал для меня.

Перед сборкой убедитесь, что вы выбрали правильный тип (iPhone Simulator) вместо iOS Device. Затем восстановите. В противном случае вы пытаетесь использовать библиотеку, созданную для устройства iOS (процессор arm) на симуляторе (i386). Должно было быть очевидно, но не было.

До:

iOS Device Settings

После того, как:

iPhone 5.1 Simulator Settings

Теперь посмотрите в группе «Продукты» в «Навигаторе»> щелкните правой кнопкой мыши свою статическую библиотеку (файл .a)> «Показать в Finder», и вы заметите, что она находится в папке Debug-iphonesimulator, а не в Debug-iphoneos. Первоначально я не обращал никакого внимания на имя папки, или я мог подумать об этом раньше.

Надеюсь, это поможет.

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