xcode5下一个ffmpeg静态库配置
2015-06-12 08:24
260 查看
1、若要安装xcode命令行工具
1).xcode5安装命令行工具方法:
在终端运行命令Using xcode-select --install
2).xcode5之前安装命令行工具方法:
2、xcode5曾经都是gcc编译的,在xcode5以后都是clang编译。在脚本中有所体现
3、xcode5曾经还要下载gas-preprocessor.pl脚本包,然后使用cp命令复制到usr/bin以下,
在xcode5以后不须要下载这个gas-preprocessor.pl脚本
4、下载ffmpeg源代码,然后放放置源代码至/usr/bin/build/src/文件下
在终端运行 cd /usr/bin/build/src/ffmpeg-2.2.3进入ffmpeg目录
5、arm7脚本(生成arm7下.a文件)
1) sudo ./configure --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --enable-cross-compile --sysroot="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk"
--target-os=darwin --cc="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" --extra-cflags="-arch armv7" --extra-ldflags="-arch armv7" --extra-ldflags=-L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/usr/lib/system
--arch=arm --cpu=cortex-a8 --enable-pic --disable-asm --disable-everything --enable-decoder=h264 --enable-decoder=rv40 --enable-decoder=aac
2) make clean
3) make
4) make install
假设运行失败。运行 sudo make install
5) make clean
6) 运行所得.a文件剪切到桌面ffmpeg目录下arm7子目录下
6、arm7s脚本(生成arm7s下.a文件)
1) sudo ./configure --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --enable-cross-compile --sysroot="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk"
--target-os=darwin --cc="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" --extra-cflags="-arch armv7s -mfpu=neon -miphoneos-version-min=7.1” --extra-ldflags="-arch
armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk -miphoneos-version-min=7.1" --arch=arm --cpu=cortex-a9 --enable-pic --disable-asm --disable-everything --enable-decoder=h264 --enable-decoder=rv40
--enable-decoder=aac
2) make clean
3) make
4) make install
假设运行失败。运行 sudo make install
5) make clean
6) 运行所得.a文件剪切到桌面ffmpeg目录下arm7s子目录下
7、i386的编译:(生成i386下.a文件)
1) sudo ./configure --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --enable-avresample --enable-cross-compile --sysroot="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk"
--target-os=darwin --cc="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" --extra-cflags="-arch i386 -mfpu=neon -miphoneos-version-min=7.0" --extra-ldflags="-arch
i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk -miphoneos-version-min=7.0" --arch=i386 --cpu=i386 --enable-decoder=h264 --enable-decoder=rv40
2) make clean
3) make
4) make install
假设运行失败,运行 sudo make install
5) make clean
6) 运行所得.a文件剪切到桌面ffmpeg目录下sim子目录下
注:不用配置这个--enable-pic --disable-asm
--enable-pic //build position-independent code
--disable-asm //disable all assembler optimizations
脚本中的黄色字体显示编译器的路径。这个和xcode5曾经是不一样的
8、i386,arm7,arm7s目录下的同样名字文件合并到ios文件下一个文件
1)、三个libswscale.a文件合成一个文件libswscale.a
lipo -create /Users/chang/Desktop/ffmpeg/sim/libswscale.a /Users/chang/Desktop/ffmpeg/arm7/libswscale.a /Users/chang/Desktop/ffmpeg/arm7s/libswscale.a -output /Users/chang/Desktop/ffmpeg/ios/libswscale.a
2)、三个libswresample.a文件合成一个文件libswresample.a
lipo -create /Users/chang/Desktop/ffmpeg/sim/libswresample.a /Users/chang/Desktop/ffmpeg/arm7/libswresample.a /Users/chang/Desktop/ffmpeg/arm7s/libswresample.a -output /Users/chang/Desktop/ffmpeg/ios/libswresample.a
3)、三个libavutil.a文件合成一个文件libavutil.a
lipo -create /Users/chang/Desktop/ffmpeg/sim/libavutil.a /Users/chang/Desktop/ffmpeg/arm7/libavutil.a /Users/chang/Desktop/ffmpeg/arm7s/libavutil.a -output /Users/chang/Desktop/ffmpeg/ios/libavutil.a
4)、三个libavformat.a文件合成一个文件libavformat.a
lipo -create /Users/chang/Desktop/ffmpeg/sim/libavformat.a /Users/chang/Desktop/ffmpeg/arm7/libavformat.a /Users/chang/Desktop/ffmpeg/arm7s/libavformat.a -output /Users/chang/Desktop/ffmpeg/ios/libavformat.a
5)、三个libavfilter.a文件合成一个文件libavfilter.a
lipo -create /Users/chang/Desktop/ffmpeg/sim/libavfilter.a /Users/chang/Desktop/ffmpeg/arm7/libavfilter.a /Users/chang/Desktop/ffmpeg/arm7s/libavfilter.a -output /Users/chang/Desktop/ffmpeg/ios/libavfilter.a
6)、三个libavdevice.a文件合成一个文件libavdevice.a
lipo -create /Users/chang/Desktop/ffmpeg/sim/libavdevice.a /Users/chang/Desktop/ffmpeg/arm7/libavdevice.a /Users/chang/Desktop/ffmpeg/arm7s/libavdevice.a -output /Users/chang/Desktop/ffmpeg/ios/libavdevice.a
7)、三个libavcodec.a文件合成一个文件libavcodec.a
lipo -create /Users/chang/Desktop/ffmpeg/sim/libavcodec.a /Users/chang/Desktop/ffmpeg/arm7/libavcodec.a /Users/chang/Desktop/ffmpeg/arm7s/libavcodec.a -output /Users/chang/Desktop/ffmpeg/ios/libavcodec.a
注:i386,arm7目录下各有8个.a文件,arm7s目录下却仅仅有7个,不明原理。
测试。我建了一个目录在桌面上ffmpeg,这里有三个子目录sim(那i386由此产生的编译.a文件。模拟器调试)、arm7(那arm7编译生成的文件环境)、arm7s(那arm7s编译生成的文件环境)。上面的命令操作后,在ios后者的内容将被合成.a文件,这使得有可能在真机和模拟器正常使用。
1).xcode5安装命令行工具方法:
在终端运行命令Using xcode-select --install
2).xcode5之前安装命令行工具方法:
2、xcode5曾经都是gcc编译的,在xcode5以后都是clang编译。在脚本中有所体现
3、xcode5曾经还要下载gas-preprocessor.pl脚本包,然后使用cp命令复制到usr/bin以下,
在xcode5以后不须要下载这个gas-preprocessor.pl脚本
4、下载ffmpeg源代码,然后放放置源代码至/usr/bin/build/src/文件下
在终端运行 cd /usr/bin/build/src/ffmpeg-2.2.3进入ffmpeg目录
5、arm7脚本(生成arm7下.a文件)
1) sudo ./configure --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --enable-cross-compile --sysroot="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk"
--target-os=darwin --cc="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" --extra-cflags="-arch armv7" --extra-ldflags="-arch armv7" --extra-ldflags=-L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/usr/lib/system
--arch=arm --cpu=cortex-a8 --enable-pic --disable-asm --disable-everything --enable-decoder=h264 --enable-decoder=rv40 --enable-decoder=aac
2) make clean
3) make
4) make install
假设运行失败。运行 sudo make install
5) make clean
6) 运行所得.a文件剪切到桌面ffmpeg目录下arm7子目录下
6、arm7s脚本(生成arm7s下.a文件)
1) sudo ./configure --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --enable-cross-compile --sysroot="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk"
--target-os=darwin --cc="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" --extra-cflags="-arch armv7s -mfpu=neon -miphoneos-version-min=7.1” --extra-ldflags="-arch
armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk -miphoneos-version-min=7.1" --arch=arm --cpu=cortex-a9 --enable-pic --disable-asm --disable-everything --enable-decoder=h264 --enable-decoder=rv40
--enable-decoder=aac
2) make clean
3) make
4) make install
假设运行失败。运行 sudo make install
5) make clean
6) 运行所得.a文件剪切到桌面ffmpeg目录下arm7s子目录下
7、i386的编译:(生成i386下.a文件)
1) sudo ./configure --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --enable-avresample --enable-cross-compile --sysroot="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk"
--target-os=darwin --cc="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" --extra-cflags="-arch i386 -mfpu=neon -miphoneos-version-min=7.0" --extra-ldflags="-arch
i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk -miphoneos-version-min=7.0" --arch=i386 --cpu=i386 --enable-decoder=h264 --enable-decoder=rv40
2) make clean
3) make
4) make install
假设运行失败,运行 sudo make install
5) make clean
6) 运行所得.a文件剪切到桌面ffmpeg目录下sim子目录下
注:不用配置这个--enable-pic --disable-asm
--enable-pic //build position-independent code
--disable-asm //disable all assembler optimizations
脚本中的黄色字体显示编译器的路径。这个和xcode5曾经是不一样的
8、i386,arm7,arm7s目录下的同样名字文件合并到ios文件下一个文件
1)、三个libswscale.a文件合成一个文件libswscale.a
lipo -create /Users/chang/Desktop/ffmpeg/sim/libswscale.a /Users/chang/Desktop/ffmpeg/arm7/libswscale.a /Users/chang/Desktop/ffmpeg/arm7s/libswscale.a -output /Users/chang/Desktop/ffmpeg/ios/libswscale.a
2)、三个libswresample.a文件合成一个文件libswresample.a
lipo -create /Users/chang/Desktop/ffmpeg/sim/libswresample.a /Users/chang/Desktop/ffmpeg/arm7/libswresample.a /Users/chang/Desktop/ffmpeg/arm7s/libswresample.a -output /Users/chang/Desktop/ffmpeg/ios/libswresample.a
3)、三个libavutil.a文件合成一个文件libavutil.a
lipo -create /Users/chang/Desktop/ffmpeg/sim/libavutil.a /Users/chang/Desktop/ffmpeg/arm7/libavutil.a /Users/chang/Desktop/ffmpeg/arm7s/libavutil.a -output /Users/chang/Desktop/ffmpeg/ios/libavutil.a
4)、三个libavformat.a文件合成一个文件libavformat.a
lipo -create /Users/chang/Desktop/ffmpeg/sim/libavformat.a /Users/chang/Desktop/ffmpeg/arm7/libavformat.a /Users/chang/Desktop/ffmpeg/arm7s/libavformat.a -output /Users/chang/Desktop/ffmpeg/ios/libavformat.a
5)、三个libavfilter.a文件合成一个文件libavfilter.a
lipo -create /Users/chang/Desktop/ffmpeg/sim/libavfilter.a /Users/chang/Desktop/ffmpeg/arm7/libavfilter.a /Users/chang/Desktop/ffmpeg/arm7s/libavfilter.a -output /Users/chang/Desktop/ffmpeg/ios/libavfilter.a
6)、三个libavdevice.a文件合成一个文件libavdevice.a
lipo -create /Users/chang/Desktop/ffmpeg/sim/libavdevice.a /Users/chang/Desktop/ffmpeg/arm7/libavdevice.a /Users/chang/Desktop/ffmpeg/arm7s/libavdevice.a -output /Users/chang/Desktop/ffmpeg/ios/libavdevice.a
7)、三个libavcodec.a文件合成一个文件libavcodec.a
lipo -create /Users/chang/Desktop/ffmpeg/sim/libavcodec.a /Users/chang/Desktop/ffmpeg/arm7/libavcodec.a /Users/chang/Desktop/ffmpeg/arm7s/libavcodec.a -output /Users/chang/Desktop/ffmpeg/ios/libavcodec.a
注:i386,arm7目录下各有8个.a文件,arm7s目录下却仅仅有7个,不明原理。
测试。我建了一个目录在桌面上ffmpeg,这里有三个子目录sim(那i386由此产生的编译.a文件。模拟器调试)、arm7(那arm7编译生成的文件环境)、arm7s(那arm7s编译生成的文件环境)。上面的命令操作后,在ios后者的内容将被合成.a文件,这使得有可能在真机和模拟器正常使用。
相关文章推荐
- 为什么使用快排?
- wget下载整个网站
- 与满二叉树完全二叉树
- ubuntu 下安装nginx
- Structure from Motion Using OpenCV
- 《大话设计模式》--分公司=一部门--组合模式<Composite>(19)
- jsp 使内容变成灰色 不可编辑
- 关于JAVA中事件分发和监听机制实现的代码实例-绝对原创实用
- Dynamics AX 2012 R3 Demo 安装与配置 - 导入测试数据 (Step 4)
- CDH报错:Traceback (most recent call last): File "<string>", line 1, in <module> File "<string>"
- 【BZOJ3270】博物馆 概率DP 高斯消元
- 关于C(m,n)%p的故事
- java string is immutable
- jsp 获取当前页面时间 并对时间进行比较
- 破解VisualSVN
- VS2013下的静态链接库和动态链接库的创建和使用
- LTE-A 载波聚合(Carrier Aggregation)介绍
- tomcat参数修改
- C++ vc中怎么使用SendMessage自定义消息函数
- java method invocation demo