xcode5下一个ffmpeg静态库配置
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文件,这使得有可能在真机和模拟器正常使用。
xcode5下一个ffmpeg静态库配置的更多相关文章
- 为iOS编译FFmpeg静态库
为iOS编译FFmpeg静态库 环境:OS X Yosemite (版本10.10.5) Xcode (Version 7.1.1 (7B1005)) 一.资料准备: (1)ffmpeg源 ...
- 解决QZ-SDK静态库libRPToolLib.a中avfoundation.o文件和kxMovie依赖的ffmpeg静态库libavdevice.a函数重复定义的问题
解决QZ-SDK静态库libRPToolLib.a中avfoundation.o文件和kxMovie依赖的ffmpeg静态库libavdevice.a函数重复定义的问题 在原来项目中导入全志v3相机的 ...
- 基于ffmpeg静态库的应用开发
最近几天在试着做基本ffmpeg静态库的开发,只有main中包含了avdevice_register_all 或avfilter_register_all,编译就通不过,undefined refre ...
- Windows 系统 vs2012 MinGW 编译ffmpeg 静态库
Windows系统下 vs2012编译ffmpeg 动态库 前面已经有文章讲述,本文将讲述如果编译生成ffmpeg静态库以方便 在vs2012下调用. 准备工作:安装MinGW环境,修改ffmpeg配 ...
- VS2015——命令行下编译、静态库动态库制作以及断点调试
c程序编译流程 程序的基本流程如图: 1. 预处理 预处理相当于根据预处理指令组装新的C/C++程序.经过预处理,会产生一个没有宏定义,没有条件编译指令,没有特殊符号的输出文件,这个文件的含义同原本的 ...
- android ndk-build 编译静态库libxx.a 以及Android studio openssl 静态库配置(cmake)
android ndk-build 编译静态库libxx.a 需求场景: 目前有安卓编码好的现在的openssl的两个.a,我们需要调用openssl的函数,并把功能再封装成.a; 这样使用时,在an ...
- iOS:Xcode7下创建 .a静态库 和 .framework静态库
Xcode7 中创建静态库:.a 和 .framework 一.简单介绍 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的分类 根据源代码的公开情况,库可以分为2种类型 (1)开 ...
- 在Windows 环境下编译Qt静态库(QT5.32)
参考链接 Qt5.3 Tools and Versions MinGW ICU ActivePerl Qt 安装MinGW工具链环境 这里在Win32环境下要安装一个MinGW工具链,这里最好是先安装 ...
- Xcode5创建自己的静态库详解
首先声明: 本人屌丝一枚,如有不对不妥之处,请大牛指正! 1.静态库工程的建立: Xcode New一个新的project,选择IOS下面的Framework&Library,下面有一个Coc ...
随机推荐
- BZOJ 2875: [Noi2012]随机数生成器( 矩阵快速幂 )
矩阵快速幂...+快速乘就OK了 ----------------------------------------------------------------------------------- ...
- export和import实现模块化
export和import实现模块化 阅读目录 ES6的模块化的基本规则或特点: 下面列出几种import和export的基本语法: ES6导入的模块都是属于引用: 循环依赖的问题: 浏览器兼容: 参 ...
- 基于visual Studio2013解决C语言竞赛题之1006填空
题目 解决代码及点评 /************************************************************************/ ...
- MinGW开发工具的安装
MinGW是Minimalist GNU for Windows的缩写,是把linux下的GNU开发工具包移植到windows的项目之一.和Cygwin不一样的是,MinGW不提供linux的posi ...
- ※数据结构※→☆线性表结构(list)☆============单向循环链表结构(list circular single)(四)
循环链表是另一种形式的链式存贮结构.它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环. 单循环链表——在单链表中,将终端结点的指针域NULL改为指向表头结点或开始结点即可. 循环链表的 ...
- 用定时器T0查询方式P0口8位控制LED闪烁
#include<reg52.h> #define uchar unsigned char #define uint unsigned int void main (void) { uch ...
- java环境变量配置问题
你要配置三个环境变量JAVA_HOMECLASSPATHPath你都配置了吗? 系统变量→新建 JAVA_HOME 变量 .变量值填写jdk的安装目录(本人是 E:\Java\jdk1.7.0) 系统 ...
- C++中实现 time_t, tm 相互转换
time_t -> tm: localtime tm -> time_t: mktime time_t curTime; time(&curTime); dwCurTime = c ...
- string和byte[]的转换 (C#)
原文 string和byte[]的转换 (C#) string类型转成byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ...
- hdu2492 Ping pong
hdu2492 Ping pong 题意:一群乒乓爱好者居住在一条直线上,如果两个人想打比赛需要一个裁判,裁判的 位置 必须在两者之间 ,裁判的能力也必须不大于 参赛者最大的,不小于参赛者最小的 白皮 ...