Как скомпилировать OpenCV для iOS7 (arm64)

Компиляция проекта Xcode завершается с ошибками: «Отсутствует требуемая архитектура arm64 в файле / Пользователи / * /Git/ocr/opencv2.framework/opencv2»

Он работает хорошо, если я меняю Архитектуры (в настройках сборки) на (armv7, armv7s) вместо (armv7, armv7s).

Как изменить скрипт сборки opencv python, добавить поддержку arm64 в opencv2.framework?

8 Solutions collect form web for “Как скомпилировать OpenCV для iOS7 (arm64)”

Последняя платформа OpenCV iOS поддерживает 64 бит по умолчанию

Его можно загрузить по адресу: страница загрузки OpenCV

Я изменил следующее, чтобы создать его, хотя у меня пока нет устройства arm64 i64 для тестирования.

Изменить : мне также пришлось следовать https://stackoverflow.com/a/17025423/1094400

Предполагая, что «opencv» – это папка, содержащая источник opencv от Github:

в каждом из gzlib.c, gzread.c, gzwrite.c расположенном в opencv/3rdparty/zlib/ add:

 #include <unistd.h> 

наверху после существующих.

Кроме того, открытые opencv/platforms/ios/cmake/Modules/Platform/iOS.cmake и строка изменения 88 из:

 set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_BIT)" CACHE string "Build architecture for iOS") 

чтобы:

 set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_INCLUDING_64_BIT)" CACHE string "Build architecture for iOS") 

Кроме того, измените buildscript на opencv/platforms/ios/build_framework.py в строках 99 и 100 из:

 targets = ["iPhoneOS", "iPhoneOS", "iPhoneSimulator"] archs = ["armv7", "armv7s", "i386"] 

чтобы:

 targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator", "iPhoneSimulator"] archs = ["armv7", "armv7s", "arm64", "i386", "x86_64"] 

Полученная библиотека будет включать следующее:

 $ xcrun -sdk iphoneos lipo -info opencv2 Architectures in the fat file: opencv2 are: armv7 armv7s i386 x86_64 arm64 

Хотя я все еще opencv/platforms/ios/cmake/Toolchain-iPhoneOS_Xcode.cmake о opencv/platforms/ios/cmake/Toolchain-iPhoneOS_Xcode.cmake который определяет размер указателя данных 4 в строках 14 и 17. Он должен быть 8 для 64-битных, я думаю, так как я haven 't проверено, если скомпилированная библиотека работает для arm64, я бы предложил дальнейшие исследования на этом этапе, если он не работает должным образом.

Ответ micahp был почти идеальным, но пропустил версию симулятора. Так что измените платформы / ios / build_framework.py на:

 targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator", "iPhoneSimulator"] archs = ["armv7", "armv7s", "arm64", "i386", "x86_64"] 

Вам необходимо загрузить инструменты командной строки для Xcode 5.0.1, а затем запустить

 python opencv/platforms/ios/build_framework.py ios 

Попробуйте подождать в следующем месяце. Выпустит новый XCode с более мощной поддержкой 32/64 бит.

https://developer.apple.com/news/index.php?id=9162013a

Измените «build_frameworks.py» на:

 def build_framework(srcroot, dstroot): "main function to do all the work" targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator"] archs = ["armv7", "armv7s", "arm64", "i386"] for i in range(len(targets)): build_opencv(srcroot, os.path.join(dstroot, "build"), targets[i], archs[i]) put_framework_together(srcroot, dstroot) 

@Jan, я выполнил ваши инструкции, но OpenCV все еще не работает на arm64. Вы сделали такой подробный и замечательный ответ – почему бы не проверить его на симуляторе и посмотреть, сможете ли вы его запустить? 🙂

FWIW, я думаю, это может быть сложнее, чем кажется. В клон stackoverflow openCV есть указание, что эта проблема может быть нетривиальной .

Вместо использования команд терминала, указанных в руководстве по установке opencv на официальном веб-сайте, используйте следующие команды. Работал для меня.

cd OpenCV-2.3.1

mkdir build

cd build

cmake -G "Unix Makefile" ..

делать

sudo make install

У меня была аналогичная ошибка, но проблема не была связана с arm64 coompilation.fixed, добавив фреймворк libc ++. Dylib

  • Как создать изображение OpenCV с изображения PIL?
  • Ошибка интерполяции refc OpenCV?
  • Иерархия дерева контура Python OpenCV
  • Быстрый снимок экрана Winapi и Opencv
  • Не удалось распаковать изображение в OpenCV
  • Доступ к функциям CUDA OpenCV из Python (нет PyCUDA)
  • Обучение и обнаружение HOG в Python с использованием OpenCV
  • Как изменить размер изображения с помощью OpenCV2.0 и Python2.6
  • DestroyWindow не закрывает окно на Mac с помощью Python и OpenCV
  • Признать персонажей номерного знака
  • Лучший способ установить OpenCV на Windows с Enthought Canopy Python?
  • Python - лучший язык программирования в мире.