您的位置:首页 > 移动开发 > IOS开发

ios: ffmpeg-0.9.2 xcode4.3.2 IOS5.1 真机调试编译过程以及Mac OSX10.7.3安装 gcc和make

2012-08-16 09:57 609 查看

因为macbook没有提供gcc和make,所以在编译ffmpeg时首先要安装gcc和make,安装方法如下:打开Xcode,菜单Xcode>>Open Developer Tool>>More Developer Tools,这时浏览器出现了,登陆后进入Apple Developer的下载站点,搜索"unix"出来第一个结果是Command Line Tools把它下载下来,下载好了安装,它会给我们提供命令行工具包括我想要的gcc和make,你不需要重新打开Terminal,which一下gcc和make,可以看到gcc和make已经安装好了。
接下来就开始编译ffmpeg了。
1.http://github.com/yuvi/gas-preprocessor下载,将gas-preprocessor.pl文件拷贝到/usr/sbin路径下(先cd到下载文件的目录,使用
cp gas-preprocessor.pl /usr/sbin命令拷贝)
2.到ffmpeg的官网http://ffmpeg.org/download.html下载所需版本的代码,这里选择ffmpeg0.9.2,解压之后会得到一个ffmpeg-0.9.2的文件夹
3.下:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc 编译成真机调试还是模拟器调试的关键在于CC的类型,是用于编译macos程序的gcc还是供iPhone
platform程序使用的gcc,以及config参数中arch是指定成x86还是armv7。 Xcode4.3.2中iPhone platform编译的gcc路径如下:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc
IOS5.1的SDK目录为:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk
路径要和当前自己版本的路径对应。
用于真机调试的configure运行参数如下:
export DEVRoot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer export SDKRoot=$DEVRoot/SDKs/iPhoneOS5.1.sdk
export CC=$DEVRoot/usr/bin/llvm-gcc

./configure --cc=${CC} --as="gas-preprocessor.pl ${CC}" --sysroot=${SDKRoot} --enable-cross-compile --target-os=darwin --arch=arm --cpu=cortex-a8 --extra-cflags="-arch armv7" --extra-ldflags="-arch armv7 -isysroot
${SDKRoot}" --enable-pic --disable-doc --disable-ffplay --disable-ffserver --disable-gpl --disable-shared --enable-static --disable-mmx --disable-debug --enable-decoder=h264 --disable-asm

脚本中使用了“--disable-asm”来禁用了汇编生成。这条会严重影响视频播放的效率。以iFrameExtractor为例,在iPhone4S上运行还成,在iPod touch上就显得有些慢动作了。但是不这么干,configure和make过程中会出错。使用IOS4.3
SDK编译的话,则不会出现此问题。stackoverflow上有人曾经提过,可以通过禁用不需要的解码器及修改源代码来避免,可惜我还没试成功过。大家有什么好办法,请千万留言。
configure过程如果出现错误,可以查看生成的config.log,根据具体的错误信息来调整configure的参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: