Попытка компилировать X264 и FFMPEG для iPhone - «Отсутствие необходимой архитектуре в файл»
Вопрос
Я пытаюсь компилировать X264 для использования в приложении iPhone. Я вижу, что есть инструкции о том, как компилировать FFMPEG для использования на платформе здесь: http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2009-octoble/076618.html. , но я не могу найти все, что это завершено для составления X264 на iPhone. Я нашел это исходное дерево: http://gitorious.org/x264-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: Предупреждение: опция - это устаревшая и игнорируется LD: предупреждение: -Force_cpusubtype_all станет неподдерживаться для архитектуры ARM LD: Предупреждение: в /usr/lib/crt1.o, отсутствует необходимая архитектура рука в файле ld: предупреждение: в / USR / X11R6 / lib / libx11.dylib, отсутствующая необходимая архитектура рука в файле ld: предупреждение: в /usr/lib/libm.dylib, отсутствует необходимая архитектура рука в файле ld: предупреждение: в /usr/lib/libpthread.dylib, Недоумение требуемая архитектурная рука в файле ld: предупреждение: в /usr/lib/libgcc_s.1.dylib, отсутствует необходимая архитектура рука в файле ld: предупреждение: в /usr/lib/libsystem.dylib, отсутствует необходимая архитектура рука в файле неопределенные символы :
Я думаю, что проблема связана с «отсутствующей необходимой архитектурой в файле» Предупреждение ... Любые идеи?
Решение
Проверьте этот сайт: http://github.com/gabriel/ffmpeg-iphone-build.Файл: build-x264-Armv6
Ты полюбишь это!
Пока и удачи!
Другие советы
Многие из разработчиков возникают проблемы с компиляцией источников FFMPEG после перехода к XCode 4.3. Это в основном связано с тем, что в отличие от предыдущих выпусков, XCode4.3 поставляется в виде пакета и не включает в себя инструменты командной строки изначально.
Мы пытались построить универсальный скрипт; Вы можете скачать полную среду для создания FFMPEG наряду с XCode4.3 здесь: https://github.com/melnikov/ffmpeg4iphone_4.3.
Предпосылки:
- Вы должны иметь xCode4.2 или 4.3, установленные на вашем Mac
- У вас должны быть установлены инструменты командной строки XCode (могут быть установлены через Xcode -> Настройки -> Загрузки)
- Вы должны иметь Git для Mac установлен.
Инструкции и объяснения:
- Поместите сценарий сборки в какой-то каталог (скажем, / TMP / FFBuild), установите его на него исполняемый флаг (бегущая «Chmod + X) ./Build)
- Запустите скрипт. Что это будет делать:
- Он проведет проверку последней версии FFMPEG в каталог FFMPEG (вы можете смело прокомментировать это, если вы уже проверили FFMPEG в текущий каталог)
- Он попытается обнаружить местоположение вашего xcode.app и выйдет, если XCode не установлен
- Он попытается найти GCC внутри XCode.App и выйдет, если он не найдет (это может произойти, если инструменты команды Xcode не установлены)
- Если вышеуказанные шаги берут гладко, скрипт будет
- Создать папку Build_Results
- Впоследствии выполнит настройку FFMPEG и сделать для 3 разных архитектур (ARMV6, ARMV7, I386) и поместит их в соответствующие каталоги внутри папки Build_Results
- Будет запустить Lipo и создать универсальные libs (и поместит их внутри budie_results / универсальной) папки.
Кстати, я проверил скрипт на ряде Mac Macs, а некоторые из них имеют тенденцию не возвращать никаких результатов в MDFind для XCode.app. Итак, если скрипт вернет «XCode не установлен», пожалуйста, не стесняйтесь установить переменную XCodePath на путь к XCode.app