ios - 尝试使用 armv6 和 arv7 架构为 iPhoneOS 平台编译 FFMPEG 库

标签 ios objective-c linux video ffmpeg

我正在尝试为具有 arm7 架构的 IOS 平台编译 FFMPEG 库。我从 http://www.ffmpeg.org 下载了 FFMPEG 库.

我成功地为 iPhoneSimulator 构建了 i386 架构的静态库。但我需要 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.

所以请给我一个可能的解决方案。为什么它不起作用?或者我需要更新什么吗?谢谢。

最佳答案

我意识到这个问题大约在 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/

当我无法让它工作时,我决定停止偷懒并实际检查路径中列出的目录:任何以“/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 

简而言之,只需仔细检查您的路径。希望对您有所帮助!

关于ios - 尝试使用 armv6 和 arv7 架构为 iPhoneOS 平台编译 FFMPEG 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15832754/

相关文章:

c++ - 在事件的 OS X 桌面上保留一个窗口

linux - 在 Linux 中将 ^A 替换为空格

ios - 判断路径是否为根目录的正则表达式

objective-c - iOS 代码中多个 URL 检索缓慢

c# - 最新的 Xamarin Forms .NET 标准应用程序, Assets 目录/默认应用程序图标损坏了吗?

objective-c - 如何将 NSString 转换为可以与 FSCreateDirectoryUnicode 一起使用的内容?

linux - awk/sed/grep命令比较三个文件的内容

linux - bash脚本获取脚本的绝对目录

ios - 向离线用户传送聊天消息的问题

iOS强制App使用自定义键盘