1、下载 sox源码:
git clone https://git.code.sf.net/p/sox/code sox-code
2、下载NDK
https://developer.android.google.cn/ndk/downloads/
3、配置NDK环境变量(如果有不熟悉mac下配置环境变量的请参考Mac下配置环境变量)
export NDKROOT="/Users/springtom/Documents/android-ndk-r21"
export PATH=${PATH}:${NDKROOT}
4、编写shell脚本
在sox-code目录下编写脚本文件,最好拷贝一份已有脚本文件如:/sox-code/itmain.sh 然后命名为自己想要的名字如 build_android.sh。然后清空里面的内容,编写如下脚本:
#!/bin/bash
#NDK路径,这里需要替换成你自己的NDK路径
NDK_BASE=/Users/springtom/Documents/android-ndk-r21
NDK_SYSROOT=$NDK_BASE/platforms/android-28/arch-arm
NDK_TOOLCHAIN_BASE=$NDK_BASE/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64
API=28
CC=$NDK_TOOLCHAIN_BASE/bin/armv7a-linux-android$API-clang
# CXX =$NDK_TOOLCHAIN_BASE/bin/armv7a-linux-android$API-clang++
LD=$NDK_TOOLCHAIN_BASE/bin/armv7a-linux-androideabi-ld
CWD=`pwd`
PROJECT_ROOT=$CWD
./configure \
#编译产物输出路径
--prefix=$(pwd)/android_lib \
--target=armv7a \
--host=arm-linux-androideabi \
--with-sysroot=$NDK_SYSROOT \
--enable-static \
--disable-shared \
--disable-openmp \
--without-libltdl
CFLAGS='-O2' \
CC=$CC \
LD=$LD \
5、源码目录sox-code 新建android-lib文件夹(这个文件夹对应上面编译脚本中--prefix=$(pwd)/android_lib \ 所指定的文件夹)
6、修改build_android.sh执行权限

sudo chmod +x build_android.sh
//需要输入密码
7、执行编译脚本
./build_android.sh
8、make -s && make install
make -s && make install
9、结果如下图:

正确的编译情况:


一些错误情况:
1、--prefix=$(pwd)/android_lib \ 不能加引号
展晓凯的编译脚本里面就有引号,导致我没有编译通过。
--prefix= "$(pwd)/android_lib " 这种情况编译会出错
error: expected an absolute directory

2、No such file or directory
或者这样的错误:

网友评论