【转】交叉编译faac共享库
转自:http://blog.csdn.net/cjj198561/article/details/38382889
编译准备
1.代码下载
在mac下面执行:wget http://downloads.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.gz
也可以用网页打开下载,不过我用网页打开下载老是失败,后来就命令下载一次性成功。
2.代码编译
下载以后解压文件,解压以后的文件名修改为faac
3.写脚本文件
编写build-faac.sh文件,内容如下:
- #!/bin/sh
- CONFIGURE_FLAGS="--enable-static --with-pic"
- ARCHS="arm64 armv7s armv7 x86_64 i386"
- # directories
- SOURCE="faac"
- FAT="fat-faac"
- SCRATCH="scratch-faac"
- # must be an absolute path
- THIN=`pwd`/"thin-faac"
- COMPILE="y"
- LIPO="y"
- if [ "$*" ]
- then
- if [ "$*" = "lipo" ]
- then
- # skip compile
- COMPILE=
- else
- ARCHS="$*"
- if [ $# -eq 1 ]
- then
- # skip lipo
- LIPO=
- fi
- fi
- fi
- if [ "$COMPILE" ]
- then
- CWD=`pwd`
- for ARCH in $ARCHS
- do
- echo "building $ARCH..."
- mkdir -p "$SCRATCH/$ARCH"
- cd "$SCRATCH/$ARCH"
- if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]
- then
- PLATFORM="iPhoneSimulator"
- CPU=
- if [ "$ARCH" = "x86_64" ]
- then
- SIMULATOR="-mios-simulator-version-min=7.0"
- HOST=
- else
- SIMULATOR="-mios-simulator-version-min=5.0"
- HOST="--host=i386-apple-darwin"
- fi
- else
- PLATFORM="iPhoneOS"
- if [ $ARCH = "armv7s" ]
- then
- CPU="--cpu=swift"
- else
- CPU=
- fi
- SIMULATOR=
- HOST="--host=arm-apple-darwin"
- fi
- XCRUN_SDK=`echo $PLATFORM | tr '[:upper:]' '[:lower:]'`
- CC="xcrun -sdk $XCRUN_SDK clang -Wno-error=unused-command-line-argument-hard-error-in-future"
- AS="$CWD/$SOURCE/extras/gas-preprocessor.pl $CC"
- CFLAGS="-arch $ARCH $SIMULATOR"
- CXXFLAGS="$CFLAGS"
- LDFLAGS="$CFLAGS"
- CC=$CC CFLAGS=$CXXFLAGS LDFLAGS=$LDFLAGS CPPFLAGS=$CXXFLAGS CXX=$CC CXXFLAGS=$CXXFLAGS $CWD/$SOURCE/configure \
- $CONFIGURE_FLAGS \
- $HOST \
- --prefix="$THIN/$ARCH" \
- --disable-shared \
- --without-mp4v2
- make clean && make && make install-strip
- cd $CWD
- done
- fi
- if [ "$LIPO" ]
- then
- echo "building fat binaries..."
- mkdir -p $FAT/lib
- set - $ARCHS
- CWD=`pwd`
- cd $THIN/$1/lib
- for LIB in *.a
- do
- cd $CWD
- lipo -create `find $THIN -name $LIB` -output $FAT/lib/$LIB
- done
- cd $CWD
- cp -rf $THIN/$1/include $FAT
- fi
4.编译
为编写的文件增加执行权限
chmod +x build-faac.sh
然后执行脚本
./build-faac.sh
完成以后会生成如下目录,对应的库和头文件在fat-faac文件夹里面
fat-faac是thin-faac里面的各个平台合并以后的库和头文件
【转】交叉编译faac共享库的更多相关文章
- 交叉编译faac共享库
作者:咕唧咕唧liukun321 来自:http://blog.csdn.net/liukun321 Advanced Audio Coding.一种专为声音数据设计的文件压缩格式,与Mp3不同,它採 ...
- Live555实战之交叉编译live555共享库
作者:咕唧咕唧liukun321 来自:http://blog.csdn.net/liukun321 能够通过这个链接获得最新的live555源代码:Live555源代码下载 Live555 是一个为 ...
- Linux学习笔记——如何使用共享库交叉编译
0.前言 在较为复杂的项目中会利用到交叉编译得到的共享库(*.so文件).在这样的情况下便会产生下面疑问,比如: [1]交叉编译时的共享库是否须要放置于目标板中,假设须要放置在哪个文件 ...
- Linux学习笔记——怎样在交叉编译时使用共享库
0.前言 在较为复杂的项目中会利用到交叉编译得到的共享库(*.so文件).在这样的情况下便会产生下面疑问,比如: [1]交叉编译时的共享库是否须要放置于目标板中,假设须要放置在哪个文件 ...
- Android NDK 交叉编译C++代码生成.so共享库详细步骤
Android NDK 交叉编译C++代码生成.so共享库详细步骤 Android NDK 调用c++ stl 模板库(修改android.mk文件) 1 在需要调用模板库的文件前包含头文件: ...
- C/C++ 跨平台交叉编译、静态库/动态库编译、MinGW、Cygwin、CodeBlocks使用原理及链接参数选项
目录 . 引言 . 交叉编译 . Cygwin简介 . 静态库编译及使用 . 动态库编译及使用 . MinGW简介 . CodeBlocks简介 0. 引言 UNIX是一个注册商标,是要满足一大堆条件 ...
- python调用c++/c 共享库,开发板上编译的一些坑!
1.对于python,ctypes只能load动态库,但现在我的对象是一个静态库,而且我没有源代码,静态库在编译过程中没有加--fPIC参数,所以我也没办法将其编译为动态库,有没有什么方法在pytho ...
- 链接(extern、static关键词\头文件\静态库\共享库)
原文链接:http://www.orlion.ga/781/ 一. 多目标文件的链接 假设有两个文件:stack.c: /* stack.c */ char stack[512]; int top = ...
- linux下共享库的注意点之-fpic
在编译共享库必须加上-fpic.这是为什么呢? 首先看一个简单的例子: #include <stdio.h> int fun1() { printf("fun1\n") ...
随机推荐
- having 子句与where区别
having 子句,条件子句 与 where 功能.用法相同,执行时机不同. where 在开始时执行检测数据,对原数据进行过滤. having 对筛选出的结果再次进行过滤. having 字段必须是 ...
- HTML 列表
HTML 支持有序.无序和定义列表 实例 无序列表 本例演示无序列表. 有序列表 本例演示有序列表. (可以在本页底端找到更多实例.) 无序列表 无序列表是一个项目的列表,此列项目使用粗体圆点(典型的 ...
- jQuery点击图片弹出放大可拖动图片查看
CSS代码: .popup-bigic { position: absolute; ; ; background: #eee; overflow: hidden; ; } .popup-bigic . ...
- IOS开发-cell的动态高度
tableView中自定义cell的高度随子控件的内容动态变化,也是用的非常多的地方.现在就来处理一个自定义一个里面有文字(多少不定),图片(有无不定)的cell 首先要准备两个模型,一个是存放数据的 ...
- 黄聪:C#中WebClient自动判断编码是UTF-8还是GBK,并且有超时判断功能
public class WebDownload : WebClient { private int _timeout; /// <summary> /// 超时时间(毫秒) /// &l ...
- SQLServer分页存储过程
创建存贮过程: Create PROCEDURE [dbo].[UP_GetRecordByPage]@tblName varchar(255), -- 表名@fldName varc ...
- DBA_Oracle LogMiner分析重做和归档日志(案例)
2014-08-19 Created By BaoXinjian
- cf 61 E. Enemy is weak 离散化+树状数组
题意: 给出一个数组,数组的每一个元素都是不一样的,求出对于3个数组下标 i, j, k such that i < j < k and ai > aj > ak where ...
- NeHe OpenGL教程 第三十三课:TGA文件
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- SqlServer调用外部程序实现数据同步
首先创建两个数据库:SyncA是数据源,SyncB是对SyncA进行同步的数据库. 在SyncA和SyncB中分别创建Source表和Target表,实际业务中,两张表的结构大多不相同. 然后 ...