码迷,mamicode.com
首页 > 其他好文 > 详细

【转】交叉编译faac共享库

时间:2015-02-12 18:17:13      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

转自: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文件,内容如下:

 
  1. #!/bin/sh  
  2.   
  3. CONFIGURE_FLAGS="--enable-static --with-pic"  
  4.   
  5. ARCHS="arm64 armv7s armv7 x86_64 i386"  
  6.   
  7. # directories  
  8. SOURCE="faac"  
  9. FAT="fat-faac"  
  10.   
  11. SCRATCH="scratch-faac"  
  12. # must be an absolute path  
  13. THIN=`pwd`/"thin-faac"  
  14.   
  15. COMPILE="y"  
  16. LIPO="y"  
  17.   
  18. if [ "$*" ]  
  19. then  
  20. if [ "$*" = "lipo" ]  
  21. then  
  22. # skip compile  
  23. COMPILE=  
  24. else  
  25. ARCHS="$*"  
  26. if [ $# -eq 1 ]  
  27. then  
  28. # skip lipo  
  29. LIPO=  
  30. fi  
  31. fi  
  32. fi  
  33.   
  34. if [ "$COMPILE" ]  
  35. then  
  36. CWD=`pwd`  
  37. for ARCH in $ARCHS  
  38. do  
  39. echo "building $ARCH..."  
  40. mkdir -p "$SCRATCH/$ARCH"  
  41. cd "$SCRATCH/$ARCH"  
  42.   
  43. if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]  
  44. then  
  45. PLATFORM="iPhoneSimulator"  
  46. CPU=  
  47. if [ "$ARCH" = "x86_64" ]  
  48. then  
  49. SIMULATOR="-mios-simulator-version-min=7.0"  
  50. HOST=  
  51. else  
  52. SIMULATOR="-mios-simulator-version-min=5.0"  
  53. HOST="--host=i386-apple-darwin"  
  54. fi  
  55. else  
  56. PLATFORM="iPhoneOS"  
  57. if [ $ARCH = "armv7s" ]  
  58. then  
  59. CPU="--cpu=swift"  
  60. else  
  61. CPU=  
  62. fi  
  63. SIMULATOR=  
  64. HOST="--host=arm-apple-darwin"  
  65. fi  
  66.   
  67. XCRUN_SDK=`echo $PLATFORM | tr ‘[:upper:]‘ ‘[:lower:]‘`  
  68. CC="xcrun -sdk $XCRUN_SDK clang -Wno-error=unused-command-line-argument-hard-error-in-future"  
  69. AS="$CWD/$SOURCE/extras/gas-preprocessor.pl $CC"  
  70. CFLAGS="-arch $ARCH $SIMULATOR"  
  71. CXXFLAGS="$CFLAGS"  
  72. LDFLAGS="$CFLAGS"  
  73.   
  74. CC=$CC CFLAGS=$CXXFLAGS LDFLAGS=$LDFLAGS CPPFLAGS=$CXXFLAGS CXX=$CC CXXFLAGS=$CXXFLAGS  $CWD/$SOURCE/configure \  
  75. $CONFIGURE_FLAGS \  
  76. $HOST \  
  77. --prefix="$THIN/$ARCH" \  
  78. --disable-shared \  
  79. --without-mp4v2  
  80.   
  81. make clean && make && make install-strip  
  82. cd $CWD  
  83. done  
  84. fi  
  85.   
  86. if [ "$LIPO" ]  
  87. then  
  88. echo "building fat binaries..."  
  89. mkdir -p $FAT/lib  
  90. set - $ARCHS  
  91. CWD=`pwd`  
  92. cd $THIN/$1/lib  
  93. for LIB in *.a  
  94. do  
  95. cd $CWD  
  96. lipo -create `find $THIN -name $LIB` -output $FAT/lib/$LIB  
  97. done  
  98.   
  99. cd $CWD  
  100. cp -rf $THIN/$1/include $FAT  
  101. fi  

 

4.编译

为编写的文件增加执行权限

chmod +x build-faac.sh

然后执行脚本

./build-faac.sh

完成以后会生成如下目录,对应的库和头文件在fat-faac文件夹里面

技术分享

fat-faac是thin-faac里面的各个平台合并以后的库和头文件

 

【转】交叉编译faac共享库

标签:

原文地址:http://www.cnblogs.com/zhoup/p/4288370.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!