lame支持armv6 armv7 i386 armv7s arm64

兩年前,開始做新浪好聲音,用lame庫來壓縮caf文件,轉為mp3.

那個時候,只需要支持armv6 armv7 i386,就可以編譯app,發揮cpu正常的性能了。

現在開發環境已經使用xcode5,手機架構也變為arm64了。

在xcode5上編譯程序,還是需要支持armv7,armv7s,arm64,比較能發揮cpu的性能。

但是之前網絡拿下來用的已經靜態庫只支持armv6 armv7 i386。

所以打算自己動手編譯一下。

從網上找了下編譯lame的資料。

1、http://sourceforge.net/projects/lame/files/lame/3.99/下載lame的最新版本解壓

2、將文件lamebuilder放到目錄下,下載地址:http://115.com/file/e79rkzbl#lamebuilder.zip

3、修改lamebuilder中的路徑和編譯器,--prefix=/Users/rinjack/Desktop/lame為你的lame目錄路徑

4、在終端中 cd到 你的lame目錄

sudo -s

chmod a+x lamebuilder

./lamebuilder

5、生成的文件在build目錄下

以上是舊版本shell編譯腳本,在xcode5中已經不能正常使用了(gcc編譯器已經被clang替代)

自己嘗試了N次后,終於在一台電腦上編譯通過了,腳本如下:

shutekiMacBook-Pro:lame pig$ cat lamebuilder

#! /bin/sh

SDK_VERSION="7.0"

mkdir build

function build_lame()

{

make distclean

./configure \

CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/${SDK}.platform/Developer/SDKs/${SDK}${SDK_VERSION}.sdk" \

CC="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch ${PLATFORM}" \

--prefix=/Users/pig/Desktop/lame \

--host="arm-apple-darwin9" \

--disable-shared \

--enable-static \

--disable-decoder \

--disable-frontend

make

cp "libmp3lame/.libs/libmp3lame.a" "build/libmp3lame-${PLATFORM}.a"

}

PLATFORM="i386"

SDK="iPhoneSimulator"

build_lame

PLATFORM="armv6"

SDK="iPhoneOS"

build_lame

PLATFORM="armv7"

build_lame

PLATFORM="armv7s"

build_lame

lipo -create build/* -output build/libmp3lame.a

arm64的編譯配置:

shutekiMacBook-Pro:lame pig$ cat lamebuilder-arm64

#! /bin/sh

SDK_VERSION="7.1"

mkdir build

function build_lame()

{

make distclean

./configure \

CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/${SDK}.platform/Developer/SDKs/${SDK}${SDK_VERSION}.sdk" \

CC="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch ${PLATFORM} -pipe -std=c99 -Wno-extended-offsetof -Wno-trigraphs -fpascal-strings -O2 -Wreturn-type -Wunused-variable -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=6.0 -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/usr/include" \

--prefix=/Users/pig/Desktop/lame \

--host="arm-apple-darwin" \

--disable-shared \

--enable-static \

--disable-decoder \

--disable-frontend

make

cp "libmp3lame/.libs/libmp3lame.a" "build/libmp3lame-${PLATFORM}.a"

}

PLATFORM="arm64"

SDK="iPhoneOS"

build_lame

lipo -create build/* -output build/libmp3lame.a

壓縮包里面有5個文件:

1. lame.h庫的頭文件

2. libmp3lame-armv6-armv7-i386.a是網上別人編譯的lib

3. libmp3lame-armv7s.a是本人親自動手編譯的(哈哈)

4. libmp3lame-arm64.a這個是本人在不滿足於armv7s,而多次嘗試成功的(得意)

5. libmp3lame.a是合並之后,支持armv6 armv7 i386 armv7s arm64四種cpu架構的合成庫。

使用的時候,只要倒入lame.h和libmp3lame.a文件就好了,其他兩個無需倒入,只是本人備份保留。

android armv7 libmp3lame.so,lame支持armv6 armv7 i386 armv7s arm64相关推荐

  1. ZBar 支持i386 armv6 armv7 armv7s x86_64 arm64

    ZBar 支持i386 armv6 armv7 armv7s x86_64 arm64 mp3转码静态库libmp3lame.a,成功加入arm64支持后, 顺便把之前记录的二维码静态库libzbar ...

  2. xcode armv6 armv7 armv7s arm64

    眼下ios的指令集有下面几种: armv6 iPhone iPhone2 iPhone3G 第一代和第二代iPod Touch armv7 iPhone4 iPhone4S armv7s iPhone ...

  3. armv6, armv7, armv7s和i386

    出现这类问题一般与静态库有关. i386是代表模拟器,显示i386错误说明静态库不支持模拟器,只支持真机. armv6, armv7, armv7s是ARM CPU的不同指令集,原则上是向下兼容的.如 ...

  4. 【转官方】Android ADB调试命令、支持的命令、ADB文档

    ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具. 持续更新中,欢迎提 PR 和 Issue 补充指 ...

  5. xcode armv7 armv7s arm64

    armv6 armv7 armv7s arm64引起编译包翻倍增大的问题,下边来说一下关于ios这个指令集 目前ios的指令集有以下几种: armv6 iPhone iPhone2 iPhone3G ...

  6. iOS armv7,armv7s, arm64

    目前ios的指令集有以下几种: armv6 iPhone iPhone2 iPhone3G 第一代和第二代iPod Touch armv7 iPhone4 iPhone4S armv7s iPhone ...

  7. 关于iOS 编译器 armv7 armv7s arm64 i386 x86_64

    armv7 armv7s arm64 是ARM处理器的指令集 i386 x86_64 处理的指令集 对应的设备 arm64:iPhoneX | iphone8 plus|iPhone8| iPhone ...

  8. iOS——armv7,armv7s,arm64详解

    这2天升级到xcode6,用ios8 SDK编译老项目,各种Undefined symbols for architecture xxx,精神差点崩溃了.不过最后还是解决了,本文简单总结一下 简单来说 ...

  9. 第26月第22天 iOS瘦身之armv7 armv7s arm64选用 iOS crash

    1.iOS瘦身之armv7 armv7s arm64选用 机器对指令集的支持是向下兼容的,因此armv7的指令集是可以运行在iphone5S以上的,只是效率没那么高而已~ 但是由于苹果要求必须支持ar ...

  10. android 传感器ceshi,Android代码-传感器-测试手机支持那几种传感

    Android代码----传感器-----测试手机支持那几种传感 一个小小Demo检测手机支持那几种传感: 具体代码如下: [Java代码]DemoSensorActivity.java packag ...

最新文章

  1. WS-Addressing 了解
  2. MAX2606调频发射芯片
  3. centos7 vim查找_实战 | 一文掌握Centos7下搭建Django前后端分离项目部署环境
  4. 简易promise的实现(二)
  5. Error during job, obtaining debugging information... FAILED: Execution Error, return code 2 from org
  6. boost::hana::value_of用法的测试程序
  7. Oracle数据库 invalid character问题解决
  8. 创建组_在Allegro软件中的Groups组创建之后怎么进行打散呢?
  9. 开源wms php,BIWEB WMS门户网站PHP开源建站系统
  10. 什么是php 的精华,在用PHP开发中的精华和技巧总结
  11. 进程和线程的深入理解
  12. Scala 专题指南
  13. C++ placement new使用
  14. 第四章 数学规划模型
  15. 基于七牛播放器的直播
  16. 【JAVA】数据结构——堆的排序及相关面试题
  17. Ubuntu10.04下搞定D-Link DWA-125无线网卡驱动
  18. 叉乘点乘混合运算公式_【“数”你好看】对数运算(Logarithm)
  19. Java中的值传递和地址值传递
  20. 《机器人学导论》第1章课后作业

热门文章

  1. 身份证号前缀与区域对照表
  2. 在Excel中快速制作分区桌面壁纸
  3. 中国支付清算发展简史
  4. 学个Antenna:手机天线入门
  5. Python爬虫实现英汉互译
  6. Excel 闪退及老是提示内存不足情况实测解决方法
  7. cad 打开硬件加速卡_CAD:“你的图纸缺少shx字体!”不知道该怎么办?不存在的!...
  8. 【VISIO绘图】VISIO绘图 学习笔记
  9. idea背景颜色修改
  10. 手把手教你安装IAR