尝试使用 armv6 和 arv7 架构为 iPhoneOS 平台编译 FFMPEG 库 [英] Trying to compile the FFMPEG libraries for iPhoneOS platform with armv6 and arv7 architecture
问题描述
我正在尝试使用 arm7 架构为 IOS 平台编译 FFMPEG 库.我从 http://www.ffmpeg.org 下载了 FFMPEG 库.
I'm trying to compile the FFMPEG Libraries for IOS platform with arm7 architecture. I downloaded the FFMPEG libraries from http://www.ffmpeg.org.
我能够成功地为 iPhoneSimulator 的 i386 架构构建静态库.但我需要 iPhoneOS 的库.使用 configure 命令时出现错误.以下是我的命令详情.
I'm successfully able to build the static libraries for the i386 architecture for the iPhoneSimulator. But I need the libraries for iPhoneOS. Using the configure command I'm getting an error. Below are my command details.
对于 i386(无错误):
For i386(which is error free):
./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 的上述命令,我收到此错误:
For above command for Arm7 I'm getting this error:
/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.
所以请建议我一个可能的解决方案.为什么它不起作用?或者我需要更新什么.谢谢.
So please suggest me a possible solution. Why is it not working? Or do I need to update anything. Thanks.
推荐答案
我意识到这个问题是在大约 2.5 个月前被问到的,所以提问者可能已经转移了,但我在寻找相同问题的答案时遇到了它问题.所以,希望这会对那里的人有所帮助!
I realize this question was asked about ~2.5 months ago, so the asker may have moved on, but I came across it while searching for an answer to the same issue. So, hopefully, this will be of help to someone out there!
我真正需要做的就是验证我使用的所有路径实际上都指向存在的东西.
All I really had to do was verify that ALL the paths I was using were actually pointing to something that existed.
具体来说,我试图运行:
Specifically, I was trying to run:
./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
当我无法让它工作时,我决定停止偷懒并实际检查路径中列出的目录:任何以/Applications/..."开头的内容.我发现我没有安装iPhoneOS6.0.sdk"(它在上面的路径中被引用).
When I couldn't get it to work, I decided to stop being lazy and actually checked the directories listed in the paths: anything that starts with "/Applications/...". What I found is that I didn't have "iPhoneOS6.0.sdk" (it's referenced above in the paths) installed.
将脚本更改为此有效:
./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
简而言之,只需仔细检查您的路径.希望有帮助!
In short, just double-check your paths. Hope that helps!
这篇关于尝试使用 armv6 和 arv7 架构为 iPhoneOS 平台编译 FFMPEG 库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!