ffmpeg no lo hará ./configure en iOS5.1

Estoy tratando de build ffmpeg en iOS5.1 (armv7), cuando bash ejecutar ./configure así:

./configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --enable-cross-compile --arch=arm --target-os=darwin --cc=/applications/xcode.app/contents/Developer/usr/bin/gcc --as='gas-preprocessor/gas-preprocessor.pl /applications/xcode.app/contents/Developer/usr/bin/gcc' --sysroot=/applications/xcode.app/contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk --cpu=cortex-a8 --extra-cflags='-arch armv7' --extra-ldflags='-arch armv7 -isysroot /applications/xcode.app/contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk' --enable-pic 

Obtuve el siguiente error:

 /applications/xcode.app/contents/Developer/usr/bin/gcc is unable to create an executable file. C compiler test failed. 

Si crees que configuró un error, asegúrate de estar usando la última versión de SVN. Si la última versión falla, informe el problema a la list de correo ffmpeg-user@mplayerhq.hu o IRC #ffmpeg en irc.freenode.net. Incluya el file de logging "config.err" producido por configure, ya que esto ayudará a resolver el problema.

¿Podría alguien proporcionar los parameters correctos en iOS5.1?

Gracias por adelantado

las instrucciones han cambiado ya que ya no hay un gcc en el SDK xcode.

Lo que debe hacer es especificar que cc es el comstackdor de iphoneos que usa xcrun, por lo tanto, donde antes solo colocamos la ruta a gcc , ahora vamos a poner una reference a xcrun para el clang .

Descargué el último ffmpeg de git, me aseguré de tener una copy de gas-preprocess.pl en la ruta y luego cambié la línea --cc= para leer:

 --cc='xcrun -sdk iphoneos clang -mios-version-min=5.1' 

(esto supone que estás construyendo y aún apuntando a ios 5.1, si estás orientado a más nuevo, entonces cambias el valor a la versión más reciente. Especificé 7.0 para la mía, pero también estoy usando el SDK de iOS 8.4, por lo que la configuration line se ve así:

 ./configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver \ --enable-cross-compile --arch=arm --target-os=darwin \ --cc='xcrun -sdk iphoneos clang -mios-version-min=7.0' \ --sysroot=/applications/xcode.app/contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.4.sdk \ --cpu=cortex-a8 --extra-cflags='-arch armv7' \ --extra-ldflags='-arch armv7 -isysroot /applications/xcode.app/contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.4.sdk' \ --enable-pic 

que construye ffmpeg desde el ios8.4 SDK. Estas instrucciones deberían seguir funcionando; solo necesita replace los valores apropiados de 7.0 / 8.4 para los nuevos SDK.

ANTIGUA RESPUESTA

Eso es lo que sucede cuando intentas comstackr código iOS usando la versión MacOS del comstackdor.

Debe especificar la versión iPhoneOS de gcc usando:

 ./configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --enable-cross-compile --arch=arm --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=/applications/xcode.app/contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk --cpu=cortex-a8 --extra-cflags='-arch armv7' --extra-ldflags='-arch armv7 -isysroot /applications/xcode.app/contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk' --enable-pic 

El primer paso al tratar de depurar problemas con configure es mirar el file config.log que se genera como parte de la ejecución.

Hay algunas cosas incorrectas con su script de configuration, que puedo decir. En primer lugar, está utilizando:

 --cc=/applications/xcode.app/contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc 

Esto está mal. Debería utilizar los comstackdores de gcc específicos de la architecture, por lo que en su caso (armv7) debería utilizar, por ejemplo:

 --cc=/applications/xcode.app/contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-gcc-4.2.1 

Tenga en count que está invitando a la versión de apple arm-apple-darwin10-gcc-4.2.1 del propio gcc de apple. Dado que este es solo un ejemplo, mire en su ../Developer/../bin/ y use la última arm-apple-darwin10-gcc-xxx que tenga. Veo que hay muchas respuestas en el SO que sugieren que lo hagas de la manera en que lo hiciste, ¡esto es completamente incorrecto! y no funciona para el arm, solo funcionará para i386 (simulador).

Deberá actualizar la directiva del ensamblador para reflejar el uso de la misma versión de gcc:

 --as='gas-preprocessor/gas-preprocessor.pl /applications/xcode.app/contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-gcc-4.2.1' 

Además, no ponga un -arch armv7 en su --extra-cflags , puede get un error: unrecognized command line option "-arch"

Por último y dependiendo de su situación, podría sugerir lo siguiente, además de lo que ya tiene:

 --disable-bzlib --disable-gpl --disable-shanetworking --enable-static --disable-mmx --disable-debug --disable-neon 

y cambie a esto:

 --extra-cflags='-pipe -Os -gdwarf-2 -isysroot /applications/xcode.app/contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk -m${thumb_opt:-no-thumb} -mthumb-interwork' 

Espero que esto ayude.