背景:在Mac下编译FFmpeg库时,看了比较多的教程基本都失败,偶然间发现NDK在去GCC化,需要通过交叉编译来完成编译,这里记录下NDK交叉编译链过程
地址 https://developer.android.google.cn/ndk/guides/standalone_toolchain
简单说交叉编译就是在A平台下编译B平台上可以使用的二进制库文件。
环境
操作系统:mac os 10.14.2
ndk版本:android-ndk-r20
编译器:clang
选择工具链(toolchain)
android平台目前的架构有armeabi、armeabi-v7a、arm64-v8a、x86、x86_64、mips,在编译不同平台架构的库时,我们需要指定不同的交叉编译链来完成编译的工作,具体对应关系如下表:
ABI | toolchain |
---|---|
armeabi-v7a | armv7a-linux-androideabi |
arm64-v8a | aarch64-linux-android |
x86 | i686-linux-android |
x86-64 | x86_64-linux-android |
具体对应工具链的地址是在$NDK_HOME/toolchains目录中