Mac 下编译SOX for android (.a静态库)

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执行权限


修改权限并执行@2x.png
sudo chmod +x build_android.sh
//需要输入密码

7、执行编译脚本

./build_android.sh

8、make -s && make install

make -s && make install

9、结果如下图:


编译sox结果@2x.png

正确的编译情况:


正确的编译情况[email protected]

正确编译情况[email protected]

一些错误情况:
1、--prefix=$(pwd)/android_lib \ 不能加引号

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

错误情况[email protected]

2、No such file or directory

或者这样的错误:


你可能感兴趣的:(Mac 下编译SOX for android (.a静态库))