近期升级了系统到 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#
输入系统 password
./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
来源: http://www.bubuko.com/infodetail-2498877.html