弄toolchain真费劲,最后发现还是NDK里的好用。目前用的NDK是r7-1版本,也许将来还会有变。

安装Android-NDK:

yaourt -S android-ndk

设置环境变量:

PATH=$PATH:/opt/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin

为简单起见建了个Bash脚本命名为aadb,内容为:

#!/bin/bash

arm-linux-androideabi-gcc --sysroot /opt/android-ndk/platforms/android-4/arch-arm -fPIC -mandroid -DANDROID -DOS_ANDROID "$@"

弄个helloworld.c试一下:

#include <stdio.h>

int main()
{
    printf("Hello, world!\n");
    return 0;
}

编译,放进Android:

agcc -o helloworld helloworld.c
adb push helloworld /system/bin

在Android shell里面:

helloworld

输出:

Hello, World!

成功了……

Update. 在/opt/android-ndk/docs/STANDALONE-TOOLCHAIN.html看见更专业的玩法应该是建立一个独立工具链,方法是:

/opt/android-ndk/build/tools/make-standalone-toolchain.sh --platform=android-4 --install-dir=/tmp/my-android-toolchain

sysroot会自动设置好。用的时候这样就行了:

export PATH=/tmp/my-android-toolchain/bin:$PATH
export CC=arm-linux-androideabi-gcc

Links: