自从第一次用NDK时写了拒绝ndk-build,过了两年了,也没有看到本身想要的工具,忍不了了,就想着有时间时写一个,就是写bash而已,不过我对bash不熟,磕磕碰碰花了很多时间,汗。(2016/09/08: 作了个Docker image,在Windows上能够经过Docker-Toolbox来用了,详细看最后。2016/09/22:支持Windows,可是得用MINGW,例如Git Bash)node
就是这个 https://github.com/sjitech/android-gcc-toolchain 了。linux
想要的功能就是摘要里的那些,贴几个图估计就明白了,就不重复翻译了。android
###实测git
测试了ffmpeg和nodejs,前者是autoconf的变形,后者是chromium的gyp build,github
ffmpeg什么也不须要准备了,什么standard toolchain生成,什么PATH,CC这类的设定都不用搞了,把configure,make命令放在android-gcc-toolchain
里执行就好了。例如:docker
android-gcc-toolchain <<< "./configure --enable-cross-compile --target-os=linux --arch=arm $OTHER_OPTIONS && make"
哦,这里假设windows
OTHER_OPTIONS="--disable-everything --disable-doc --enable-protocol=pipe --enable-filter=scale --enable-filter=crop --enable-filter=transpose --enable-demuxer=rawvideo --enable-decoder=rawvideo --enable-muxer=image2 --enable-muxer=image2pipe --enable-muxer=mjpeg --enable-encoder=mjpeg --enable-encoder=png"
而NodeJS的编译,具体的看[NodeJS for Android]完美编译大全缓存
2016/09/06: 支持ccache这个编译缓存工具了,重复编译时速度快了不少。选项--ccache,两个c。bash
2016/09/08: 作了个Docker image,在Windows上能够经过Docker-Toolbox来用了。ide
$ docker run -it osexp2000/android-gcc-toolchain arm64 [android-21-arm64] ./configure ...