LAME的交叉编译

702 阅读1分钟

下载

lame

编译

下载完毕,解压后在项目根目录下新建thin\arm64文件夹用于存放将要编译的静态库。

项目根目录下新建build_arm64.sh脚本:

#!/bin/sh

./configure \
--disable-shared \
--disable-frontend \
--host=arm-apple-darwin \
--prefix="/Users/dowZhang/Desktop/lame-3.100/thin/arm64" \
CC="xcrun -sdk iphoneos clang -arch arm64"
CFLAGS="-arch arm64 -fembed-bitcode -miphoneos-version-min=9.0" \
LDFLAGS="-arch arm64 -fembed-bitcode -miphoneos-version-min=9.0"
make clean
make -j8
make install

x86_64脚本:

#!/bin/sh

./configure \
--disable-shared \
--disable-frontend \
--host=x86_64-apple-darwin \
--prefix="/Users/dowZhang/Desktop/lame-3.100/thin/x86_64" \
CC="xcrun -sdk iphonesimulator clang -arch x86_64"
CFLAGS="-arch x86_64 -fembed-bitcode -mios-simulator-version-min=9.0" \
LDFLAGS="-arch x86_64 -fembed-bitcode -mios-simulator-version-min=9.0"
make clean
make -j8
make install
  • --disable-shared:关闭动态链接库,编译不需要再链接其他动态库。
  • --disable-frontend: 不编译出LAME的可执行文件。
  • --prefix: 指定编译好的库存放路径。
  • --CC: 指定交叉工具编译链的路径。
  • CFLAGS:指定编译时所带的参数。
  • LDFLAGS:指定链接过程所带的参数。
  • make -j8: 用make -j,可以进行并行编译,比如在一台四核的机器,用make -j8,让make最多允许8个编译命令同时执行,更有效的利用CPU资源。

一些其他工具补充

  • AS:将汇编文件生成目标文件。
  • AR:打包器。
  • LD:链接器。
  • GDB:调试工具。
  • STRIP:以最终生成的可执行文件或者库文件作为输入,然后消除其中的源码。
  • NM:查看静态库文件中的符号。
  • Objdump:查看静态库或者动态库的方法签名。

引自《音视频开发进阶指南》