ffmpeg pas ./configure dans iOS5.1

J’essaie de comstackr ffmpeg sur iOS5.1 (armv7) lorsque j’essaie d’exécuter ./configure comme ceci:

./configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --enable-cross-comstack --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 

Je reçois l’erreur suivante:

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

Si vous pensez que configure a commis une erreur, assurez-vous d’utiliser la dernière version de SVN. Si la dernière version échoue, signalez le problème à la liste de diffusion [email protected] ou IRC #ffmpeg sur irc.freenode.net. Incluez le fichier journal “config.err” produit par configure car cela aidera à résoudre le problème.

Quelqu’un pourrait-il s’il vous plaît fournir les parameters corrects dans iOS5.1?

Merci d’avance

les instructions ont changé puisqu’il n’y a plus de gcc dans le SDK xcode.

Ce que vous devez faire est de spécifier que cc est le compilateur iphoneos utilisant xcrun. Par conséquent, là où nous avions précédemment placé le chemin vers gcc , nous allons maintenant placer une référence à xcrun pour clang .

J’ai téléchargé le dernier fichier ffmpeg depuis git, m’assurant d’avoir une copie de gas-preprocess.pl sur le chemin, puis modifié la ligne --cc= pour lire:

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

(Cela suppose que vous construisez et ciblez toujours ios 5.1. Si vous ciblez une version plus récente, vous modifiez la valeur pour la version la plus récente. J’ai spécifié la version 7.0 pour la mienne, mais j’utilise également le SDK iOS 8.4, de sorte que la la ligne ressemble à:

 ./configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver \ --enable-cross-comstack --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 

qui construit ffmpeg à partir du SDK ios8.4. Ces instructions devraient continuer à fonctionner. il vous suffit de remplacer les valeurs 7.0 / 8.4 appropriées pour les kits de développement logiciel les plus récents.

ANCIENNE REPONSE

C’est ce qui se produit lorsque vous essayez de comstackr du code iOS à l’aide de la version MacOS du compilateur.

Vous devez spécifier la version iPhoneOS de gcc à l’aide de:

 ./configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --enable-cross-comstack --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 

La première étape lorsque vous essayez de déboguer des problèmes avec configure consiste à consulter le fichier config.log généré lors de l’exécution.

Il y a quelques erreurs dans votre script de configuration que je peux dire. Tout d’abord, vous utilisez:

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

C’est faux. Vous devriez utiliser les compilateurs gcc spécifiques à l’architecture. Dans votre cas (armv7), vous devriez donc utiliser, par exemple:

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

Notez que vous appelez la version arm-apple-darwin10-gcc-4.2.1 du propre gcc de apple. Comme il ne s’agit que d’un exemple, regardez dans votre ../Developer/../bin/ et utilisez le dernier arm-apple-darwin10-gcc-xxx que vous avez. Je vois qu’il y a beaucoup de réponses sur SO qui vous suggèrent de le faire comme vous l’avez fait, c’est tout simplement faux! et ne fonctionne pas pour le arm, ça ne fonctionnera que pour i386 (simulateur).

Vous devrez mettre à jour la directive assembler afin de refléter l’utilisation de la même version 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' 

De plus, ne mettez pas -arch armv7 dans votre --extra-cflags , vous risquez d’obtenir une error: unrecognized command line option "-arch"

Enfin, en fonction de votre situation, puis-je suggérer ce qui suit, en plus de ce que vous avez déjà:

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

et changer à ceci:

 --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' 

J’espère que cela t’aides.