Попытка скомпилировать x264 и ffmpeg для iPhone - «отсутствует требуемая архитектура в файле» - PullRequest
0 голосов
/ 10 апреля 2010

Я пытаюсь скомпилировать x264 для использования в приложении для iPhone. Я вижу, что здесь есть инструкции по компиляции ffmpeg для использования на платформе: http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2009-October/076618.html, но я не могу найти ничего такого полного для компиляции x264 на iPhone. Я нашел это дерево исходных текстов: http://gitorious.org/x264-arm, которое, похоже, поддерживает платформу ARM.

Вот моя строка конфигурации:

./configure --cross-prefix=/usr/bin/ --host=arm-apple-darwin10 --extra-cflags="-B /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk/usr/lib/ -I /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk/usr/lib/"

... и внутри configure Я использую сценарий препроцессора газа (первая ссылка выше) в качестве ассемблера:

gas-preprocessor.pl gcc

Когда я начинаю компилировать, он ненадолго разбивается на части, затем выдает эти предупреждения и огромный список неопределенных символов:

ld: warning: option -s is obsolete and being ignored
ld: warning: -force_cpusubtype_ALL will become unsupported for ARM architectures
ld: warning: in /usr/lib/crt1.o, missing required architecture arm in file
ld: warning: in /usr/X11R6/lib/libX11.dylib, missing required architecture arm in file
ld: warning: in /usr/lib/libm.dylib, missing required architecture arm in file
ld: warning: in /usr/lib/libpthread.dylib, missing required architecture arm in file
ld: warning: in /usr/lib/libgcc_s.1.dylib, missing required architecture arm in file
ld: warning: in /usr/lib/libSystem.dylib, missing required architecture arm in file
Undefined symbols:

Я полагаю, что проблема связана с предупреждением "отсутствует требуемая архитектура в файле" ... есть идеи?

Ответы [ 2 ]

1 голос
/ 04 июля 2012

Многие разработчики испытывают проблемы с компиляцией исходных кодов FFMpeg после перехода на XCode 4.3. В основном это связано с тем, что, в отличие от предыдущих выпусков, XCode4.3 поставляется в комплекте и изначально не содержит инструментов командной строки.

Мы попытались создать универсальный скрипт; Вы можете скачать полную среду для сборки FFMpeg вместе с XCode4.3 здесь: https://github.com/melnikov/ffmpeg4iphone_4.3

ПРЕДПОСЫЛКИ:

  1. на вашем Mac должен быть установлен XCode4.2 или 4.3
  2. у вас должны быть установлены инструменты командной строки XCode (может быть установлен через XCode -> Preferences -> Downloads)
  3. у вас должен быть установлен git для mac.

ИНСТРУКЦИИ и ОБЪЯСНЕНИЯ:

  1. поместите скрипт сборки в какой-то каталог (скажем, / tmp / ffbuild), установите для него флаг исполняемого файла (запустив 'chmod + x ./build)
  2. запустить скрипт. Что он будет делать:
  3. он извлечет последнюю версию FFMpeg в каталог FFmpeg (вы можете смело комментировать это, если вы уже извлекли FFmpeg в текущий каталог)
  4. попытается определить местоположение вашего Xcode.app и завершит работу, если Xcode не установлен
  5. он попытается найти gcc внутри Xcode.app и завершит работу, если он не найден (это может произойти, если Xcode Command Tools не установлены)
  6. если вышеуказанные шаги прошли гладко, скрипт будет
  7. создать папку build_results
  8. впоследствии запустит FFmpeg configure и создаст для 3 различных архитектур (armv6, armv7, i386) и поместит их в соответствующие каталоги внутри папки build_results
  9. запустит lipo и создаст универсальные библиотеки (и поместит их в папку build_results / Universal).

Кстати, я тестировал скрипт на нескольких маках моего коллеги, и некоторые из них, как правило, не возвращают никаких результатов в mdfind для Xcode.app. Итак, если скрипт вернет «Xcode не установлен», пожалуйста, не стесняйтесь установить переменную XCODEPATH в путь к Xcode.app

1 голос
/ 21 апреля 2010

Проверьте этот сайт: http://github.com/gabriel/ffmpeg-iphone-build Файл: build-x264-armv6

Тебе это понравится!

Пока и удачи!

...