2013-04-05 1 views
3

Я пытаюсь скомпилировать библиотеки FFMPEG для платформы IOS с архитектурой arm7. Я загрузил библиотеки FFMPEG с http://www.ffmpeg.org.Попытка скомпилировать библиотеки FFMPEG для платформы iPhoneOS с архитектурой armv6 и arv7

Я успешно смогу создавать статические библиотеки для архитектуры i386 для iPhoneSimulator. Но мне нужны библиотеки для iPhoneOS. Используя команду configure, я получаю сообщение об ошибке. Ниже приведены данные моей команды.

Для i386 (это ошибка бесплатно):

./configure --enable-cross-compile --disable-debug --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc --disable-network --disable-everything --enable-protocol=file --enable-demuxer=mov --enable-muxer=mpegts --enable-bsf=h264_mp4toannexb --arch=i386 --target-os=darwin --cc=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc --as='./gas-preprocessor/gas-preprocessor.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' --sysroot=/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneOS6.1.sdk --cpu=i386 --extra-cflags='-arch i386' --extra-ldflags='-arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk' --prefix="/Users/amit/Desktop/LivuLib-master/LivuLIb/ffmpeg/bin/newLib" 

Для ARMv7:

./configure --enable-cross-compile --disable-debug --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc --disable-network --disable-everything --enable-protocol=file --enable-demuxer=mov --enable-muxer=mpegts --enable-bsf=h264_mp4toannexb --arch=armv7 --target-os=darwin --cc=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc --as='./gas-preprocessor/gas-preprocessor.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' --sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk --cpu=cortex-a9 --extra-cflags='-arch armv7' --extra-ldflags='-arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk' --prefix="/Users/amit/Desktop/LivuLib-master/LivuLIb/ffmpeg/bin/newLib" 

Для выше команды для ARM7 Я получаю эту ошибку:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc is unable to create an executable file. 
C compiler test failed. 

If you think configure made a mistake, make sure you are using the latest 
version from SVN. 

Так пожалуйста, предложите мне возможное решение. Почему это не работает? Или мне нужно что-то обновить. Благодарю.

+0

Посмотрите эту страницу, чтобы узнать о несовместимости LGPL и iOS, вам нужно подумать об этом, прежде чем пытаться использовать ffmpeg в приложении iOS: [Совместимость-между-iphone-app-store-and-the-lgpl] (http://multinc.com/2009/08/24/compatibility-between-the-iphone-app-store-and-the-lgpl/). – MoDJ

+0

Вот скрипт для создания FFmpeg для iOS 6.1+ на основе iOS 7.0 SDK (Xcode 5): https://github.com/renebigot/build_FFmpeg_for_iOS. Он будет создавать универсальные (armv7, armv7s и i386) статические библиотеки. – Massale

+0

Для тех, кто ищет ответы на кросс-компиляцию библиотеки ffmpeg для платформы iOS с помощью Xcode 5, изучите сценарий сборки с http://www.ffmpeg4ios.org/ и измените SDK для последней версии. аналогичный вопрос http://stackoverflow.com/questions/19092796/build-ffmpeg-with-xcode-5 –

ответ

2

Я понимаю, что этот вопрос задавали около ~ 2,5 месяца назад, так что, возможно, искатель пошел, но я наткнулся на него, ища ответ на тот же вопрос. Так что, надеюсь, это поможет кому-то!

Все, что мне действительно нужно было сделать, это проверить, что ВСЕ пути, которые я использовал, фактически указывали на то, что существовало.

В частности, я пытался бежать:

./configure \ 
--prefix=armv7 \ 
--disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver \ 
--enable-avresample --enable-cross-compile \ 
--sysroot="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk" \ 
--target-os=darwin \ 
--cc="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc" \ 
--extra-cflags="-arch armv7 -mfpu=neon -miphoneos-version-min=6.0" \ 
--extra-ldflags="-arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk -miphoneos-version-min=6.0" \ 
--arch=arm --cpu=cortex-a9 --enable-pic 

^из http://www.tangentsoftworks.com/2012/11/12/how-to-prepare-your-mac-for-ios-development-with-ffmpeg-libraries/

Когда я не мог заставить его работать, я решил перестать быть ленивым и фактически проверены в каталогах, перечисленных в paths: все, что начинается с «/ Applications/...». Что я нашел, так это то, что у меня не было «iPhoneOS6.0.sdk» (оно указано выше в путях).

Изменение сценария для этого работал:

./configure \ 
--prefix=armv7 \ 
--disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver \ 
--enable-avresample --enable-cross-compile \ 
--sysroot="/applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk" \ 
--target-os=darwin --cc="/applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc" \ 
--extra-cflags="-arch armv7 -mfpu=neon -miphoneos-version-min=6.0" \ 
--extra-ldflags="-arch armv7 -isysroot /applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk -miphoneos-version-min=6.0" \ 
--arch=arm --cpu=cortex-a9 --enable-pic 

Короче говоря, просто дважды проверить пути. Надеюсь, это поможет!

+0

Спасибо за ответ. Сейчас я не могу проверить код снова из-за недоступности кода. Но я хочу упомянуть об одном: я пробовал с каждым файлом sdk i.e 6.0, 6.1 и другими, и я также пытался использовать несколько систем. но все же я не мог этого сделать. – iDevAmit

+0

Сообщите мне, если/когда вы попробуете выше, работаете (по крайней мере, для меня), стройте рутину. Надеюсь, у вас есть успех. Кроме того, вы действительно смотрели на свои пути, чтобы вы могли видеть, какие SDK действительно существуют на вашем компьютере? – u2Fan

Смежные вопросы