Zbar SDK - отсутствует необходимая архитектура x86_64

У меня была одна проблема при создании приложения в недавнем Xcode 5.1. Сбой компиляции с ошибкой «Неопределенные символы для архитектуры x86_64».

Я строю свой проект с допустимой архитектурой: armv7, armv7s и arm64. После переключения на новейшую среду (Xcode) я перестраиваю библиотеку libzbar.a в той же архитектуре (я сделал это на основе решения, найденного по адресу: Ошибка компоновщика в Xcode-5)

Может быть, у кого-то была такая же проблема, и, наконец, он решил ее, пожалуйста, поделитесь решением :)


person mbutan    schedule 26.03.2014    source источник
comment
Похоже, загруженная вами версия Zbar не поддерживает 64, что необходимо. Вы можете попробовать собрать Zbar из исходников.   -  person rckoenes    schedule 26.03.2014
comment
Да, я сделал это, я пересобрал libzbar.a на основе исходного кода с правильной архитектурой. Однако мне это не помогает, у кого-нибудь это работает?   -  person mbutan    schedule 26.03.2014
comment
ты добавил все необходимые фреймворки???   -  person Mohit    schedule 26.03.2014
comment
попробуйте это stackoverflow.com/a/23409994/2684720   -  person Hsm    schedule 04.02.2015


Ответы (6)


У меня была такая же проблема, и я решил так:

  • Удалите ссылку на папку ZBarSDK из вашего проекта.
  • Загрузите версию для armv7, arm7s и armv64 по этой ссылке .
  • Замените старую папку на новую, (Сохраните копию на всякий случай)
  • Добавьте новую папку в свой проект.
  • Очистите проект и выполните сборку.

Дайте мне знать, если это работает для вас.

person fpauer    schedule 07.01.2015
comment
Спасибо большое вы спасли мне жизнь - person Mayur Kawale; 23.11.2016

Перекомпилировать ZBar для iphone 6

Шаги

Загрузите исходный код (у вас должен быть Mercurial для Mac):

Откройте терминал и выполните следующие команды

а. hg clone http://zbar.hg.sourceforge.net:8000/hgroot/zbar/zbar

б. cd zbar

в. hg оформить заказ iPhoneSDK-1.3.1

д. открыть iphone/zbar.xcodeproj

В проекте xcode отредактируйте схему «libzbar» и выберите «Выпуск в конфигурации сборки».

Перейдите к настройкам сборки, установленным для следующих архитектур.

а. Архитектуры -> Стандартные архитектуры (armv7, armv72, arm64)

б. Допустимые архитектуры -> arm64, armv7 armv7s

Скомпилируйте libzbar для устройства И для симулятора, вот конфигурация:

Найдите скомпилированный libzbar.a и зайдите в папку с помощью Teminal.app,

В моем случае: /Users/kappe/Library/Developer/Xcode/DerivedData/zbar-gyozyrpbqzvslmfoadhqkwskcesd/Build/Products

В этой папке у вас должно быть две подпапки Release-iphoneos и Release-iphonesimulator.

с помощью инструментов командной строки xcode создайте свою универсальную библиотеку:

lipo -create Release-iphoneos/libzbar.a Release-iphonesimulator/libzbar.a -o libzbar.a

Теперь вы можете использовать созданный libzbar.a как в устройстве, так и в симуляторе.

Ссылка: xcode 5.1 - Неопределенные символы для архитектуры x86_64 (zbar )

person Tushar - iOS developer    schedule 30.09.2014

Убедитесь, что ваш libzbar.a содержит все архитектуры, необходимые для вашего проекта. Для сборки устройства и симулятора вам может понадобиться следующее:

armv7 armv7s arm64 i386 x86_64

Вы можете проверить это, используя следующую команду:

xcrun -sdk iphoneos lipo -info libzbar.a
person gagarwal    schedule 26.03.2014
comment
Я не могу этого понять. Я могу получить один с arv7 arv7s arm64. И еще один с armv7 i386 или armv7 x86_64 не знаю почему. Вы можете помочь мне? - person amurcia; 09.07.2014
comment
То же самое происходит для меня. Можете ли вы помочь мне, как собрать его с x86_64? - person Tushar - iOS developer; 30.09.2014

для меня: xcode 6, iphone 6 работает по методу fpauer!

путь:

Удалите ссылку на папку ZBarSDK из вашего проекта. Загрузите версию для armv7, arm7s и armv64 по этой ссылке . Замените старую папку на новую (сохраните копию на всякий случай). Добавьте новую папку в свой проект. Очистите проект и выполните сборку.

person francesco berna    schedule 09.01.2015

Вчера у меня была такая же проблема, и я, наконец, смог построить 64-битный симулятор.

После ссылки, которую вы пробовали, я заменил библиотеку и все заголовочные файлы. но этого было недостаточно. Затем я также отключаю libzbar.a от Link Binary With Libraries на Bulid Phases и повторно добавляю библиотеку. Тогда это работало.

Дайте мне знать, если это работает для вас.

person HMHero    schedule 26.03.2014
comment
Привет. Не могли бы вы сообщить мне, как скомпилировать libzbar для x86_64 с помощью xcode 6? Я строю с помощью устройства iOS, но оно дает только armv7 и arm64, и то же самое для симулятора iPhone6. Пожалуйста, дайте мне знать, что я могу сделать, чтобы собрать его для архитектуры x86_64. - person Tushar - iOS developer; 30.09.2014
comment
Tushar — вам нужно сгенерировать толстую статическую библиотеку. gist.github.com/rehos/7856163 - person HMHero; 04.10.2014

Я также некоторое время был в поезде ZBar, занимаясь этими проблемами, поскольку они не обновляли SDK. К счастью, если ваше приложение должно поддерживать только iOS7 и более поздние версии (на которых сейчас работает большинство пользователей iOS!), теперь в AVFoundation есть поддержка чтения QR/штрих-кода, так что вы можете очень легко создать свой собственный ридер. Посмотрите этот урок:

http://www.appcoda.com/qr-code-ios-programming-tutorial/

Тогда насладитесь красотой полностью поддерживаемого Apple считывателя QR-кода!

person ColossalChris    schedule 01.10.2014