我正在尝试为 arm 板交叉编译一个独立的应用程序,最重要的是我想在没有 Android.mk 框架的情况下编译它。
我有以下疑问:-
1- 我应该使用哪个工具(arm-eabi 或 arm-linux-androideabi 等)。
2-我应该从哪里下载库和工具链相关的部分。
3-我应该为独立编译(完全静态)包括哪些编译标志。
如果问题不清楚,请评论也请添加我缺少的相关信息,详细信息将不胜感激。
我正在尝试为 arm 板交叉编译一个独立的应用程序,最重要的是我想在没有 Android.mk 框架的情况下编译它。
我有以下疑问:-
1- 我应该使用哪个工具(arm-eabi 或 arm-linux-androideabi 等)。
2-我应该从哪里下载库和工具链相关的部分。
3-我应该为独立编译(完全静态)包括哪些编译标志。
如果问题不清楚,请评论也请添加我缺少的相关信息,详细信息将不胜感激。
NDK 的独立工具链部分准确地涵盖了这一点。
首先编译器需要知道 sysroot 的位置,以便它可以找到标准库。
SYSROOT=$NDK/platforms/android-21/arch-arm
然后你可以做
export CC="$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/ \
linux-x86/bin/arm-linux-androideabi-gcc-4.8 --sysroot=$SYSROOT" $CC -o foo.o -c foo.c
对于静态编译,只需添加-static
到调用中。
高级方法是将某个工具链安装到一个目录中,然后您可以直接调用该目录而无需指定 sysroot。