参考如下:

最近升级了系统到Mac OS X 10.10 并且更新了XCode6.1和iOS 8.1

之前app用到的libmp3lame.a静态库,也要支持64位的模拟器(x86_64)和64位的真机(arm64)指令集。需要重新编译

查阅了下资料,按照如下步骤,并做了些注释和改动

1.http://sourceforge.net/projects/lame/files/lame/3.99/ 下载lame的最新版本解压到一个文件夹里例如 lame,全路径如下/Users/8wm/Desktop/lame

2.下载build的脚本,我这里使用的是国外一个朋友的分享

https://github.com/kewlbear/lame-ios-build

下载之后得到lame-build.sh拷贝到文件夹/Users/8wm/Desktop/lame

3.用bbedit或者其他编辑器打开这个脚本,按照注释修改

4.打开Terminals,

输入

cd /Users/8wm/Desktop/lame

chmod 777 lame-build.sh

sudo -s#

输入系统密码

./lame-build.sh

开始编译,编译完成之后。生成fat-lame目录和thin-lame目录,分别存放合并所有指令集的静态库,以及各指令集的静态库.

根据所需,copy lame.h和libmp3lame.a文件到project里,就可以正常使用了。

可以使用命令行,查看换个库支持的指令集。

lipo -info libmp3lame.a

Architectures in the fat file: libmp3lame.a are: armv7 armv7s i386 x86_64 arm64

以下是build的脚本,请注意黄色的字和注释

#!/bin/sh

make distclean

CONFIGURE_FLAGS="--disable-shared --disable-frontend"

ARCHS="arm64 armv7s x86_64 i386 armv7"

# directories
# SOURCE是下载lame源码包,解压后的目录,可以把sh脚本放到这个目录,source改为""
SOURCE=""
# FAT是所有指令集build后,输出的目录,所有静态库被合并成一个静态库
FAT="fat-lame"

# SCRATCH是下载lame源码包,解压后的目录,必须是绝对路径
SCRATCH="/Users/8wm/Desktop/lame"
# must be an absolute path
# THIN 各自指令集build后输出的静态库所在的目录,每个指令集为一个静态库
THIN=`pwd`/"thin-lame"

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`
echo "$CWD/$SOURCE........."
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"
if [ "$ARCH" = "x86_64" ]
then
SIMULATOR="-mios-simulator-version-min=7.0"
HOST=x86_64-apple-darwin
else
SIMULATOR="-mios-simulator-version-min=5.0"
HOST=i386-apple-darwin
fi
else
PLATFORM="iPhoneOS"
SIMULATOR=
HOST=arm-apple-darwin
fi

XCRUN_SDK=`echo $PLATFORM | tr '[:upper:]' '[:lower:]'`
CC="xcrun -sdk $XCRUN_SDK clang -arch $ARCH"
#AS="$CWD/$SOURCE/extras/gas-preprocessor.pl $CC"
CFLAGS="-arch $ARCH $SIMULATOR"
CXXFLAGS="$CFLAGS"
LDFLAGS="$CFLAGS"

CC=$CC $CWD/$SOURCE/configure \
$CONFIGURE_FLAGS \
--host=$HOST \
--prefix="$THIN/$ARCH" \
CC="$CC" CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS"

make -j3 install
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

转载于:https://www.cnblogs.com/ldc529/p/5082419.html

spidermonkey编译相关推荐

  1. jsc反编译工具编写探索之路

    对于经常做游戏安全逆向的读者来说,可能会经常遇到Cocos2dx编写的游戏.这个国产开源的游戏开发引擎支持多种编程语言进行游戏开发:发括主流的C/C++/JavaScript/Lua,之前,与大家讨论 ...

  2. 脚本引擎小PK: SpiderMonkey vs V8

    介绍 SpiderMonkey是Firefox使用的脚本引擎,V8是Google Chrome使用的脚本引擎.这篇文章介绍了怎样在自己的C++程序中嵌入这两种脚本引擎,以及简单做了一些横向的对比. 编 ...

  3. SpiderMonkey相关学习资料

    SpiderMonkey相关学习资料 1.在Sublime中搭建SpiderMonkey编译环境 2.SpiderMonkey引擎下载 3.SpiderMonkey 入门 4.Spider官网 htt ...

  4. cocos2dx小游戏数据签名算法破解

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 快速破解小游戏常见的数据签名算法." 最近在分析各种小游戏的协议,本文以<我不是无双>这款小游戏为样例介绍这类小游戏的 ...

  5. windows编译-spidermonkey

    听过Mozilla(火狐浏览器的娘家)的javascript引擎吗?感兴趣吗?想在windows平台的应用开发中使用这个引擎吗? 肯定? 好,往下看! 本文给出Windows平台SpiderMonke ...

  6. VS2010 编译 SpiderMonkey 1.8.5 静态库版本

    大家好,前段时间看到 VC驿站 上面会员发布了一篇文章<Windows系统编译制作SpiderMonkey最新版mozjs-31.2.0版本>,地址为: http://www.cctry. ...

  7. Windows系统编译制作SpiderMonkey最新版mozjs-31.2.0版本

    如何让我们的c++程序可以支持脚本,尤其是支持JavaScript是件很有意思的事情的,那样可以为软件的灵活性,扩展性提供可能.你可能会说用JavaScript 引擎,对,JavaScript 引擎有 ...

  8. window编译最新的spiderMonkey

    原文地址http://www.cctry.com/forum.php?mod=viewthread&tid=250698&extra=page%3D1&page=1& ...

  9. Windows下编译Chrome V8

    主要还是参考google的官方文档: How to Download and Build V8 Building on Windows 同时也参考了一些其它的中文博客: 脚本引擎小pk:SpiderM ...

最新文章

  1. 【OpenCV】OpenCV中积分图函数与应用
  2. 2021北师大丰台实验高考成绩查询,2020北京丰台区中考各高中录取分数线公布
  3. hdu2594 简单KMP
  4. bat等大公司常考java多线程面试题
  5. 【数据库】Ubuntu18.04安装MySQL详解
  6. LWIP的UDP相关API
  7. java sleep方法_6种快速统计代码执行时间的方法,真香!(史上最全)
  8. CMU15213 Intro to Computer Systems学习笔记(14) Exceptional Control Flow: Signals and Nonlocal Jumps
  9. UE破解及注册机下载
  10. iBase4J项目笔记
  11. 红外通信模块——详细资料(含遥控器按键对应的码值)
  12. BPM就是IT规划与企业战略的最佳匹配
  13. VR全景智慧城市虚拟现实三维的发展
  14. 银河麒麟/ubuntu 下安装/卸载软件包命令大全
  15. v-if和v-show能和v-for同时出现吗?
  16. jquery append()方法与html()方法用法区别
  17. 大四 Java开发实习近一年 记录(每6至12月更新一次)
  18. 蓝桥杯训练(python)Day2
  19. 微服务RESTful 接口设计规范
  20. S说说镀锌、镀镉、镀铬、镀镍到底有什么不同?

热门文章

  1. Excel中经纬度数据转换公式
  2. MongoDb数组操作 - unwind解包、group分组统计、sort排序
  3. 【深度学习】Generative Adversarial Network 生成式对抗网络(GAN)
  4. 在64位ubuntu11.10中用锐捷上网
  5. 如何使用NPM来管理你的Node.js依赖
  6. 图像识别的应用与实践
  7. 手机间快速传输---微传
  8. 可能是最全的运营工具集合了
  9. UG NX 12 基准点
  10. 车道保持系统的基本功能和工作原理