交叉编译独立应用程序?
Cross compiling stand alone application?
我正在尝试为 arm board 交叉编译一个独立的应用程序,最重要的是我想在没有 Android.mk 框架的情况下编译它。
我有以下疑问:-
1- 我应该使用哪个工具(arm-eabi 或 arm-linux-androideabi
等)。
2-我应该从哪里下载相关的库和工具链
部分。
3- 我应该包括哪些独立的编译标志
编译(完全静态)。
如有不明之处欢迎评论,也请补充我遗漏的相关信息,如有详细信息将不胜感激。
NDK 的 Standalone Toolchain 部分恰好涵盖了这一点。
首先,编译器需要知道 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。
我正在尝试为 arm board 交叉编译一个独立的应用程序,最重要的是我想在没有 Android.mk 框架的情况下编译它。
我有以下疑问:-
1- 我应该使用哪个工具(arm-eabi 或 arm-linux-androideabi 等)。
2-我应该从哪里下载相关的库和工具链 部分。
3- 我应该包括哪些独立的编译标志 编译(完全静态)。
如有不明之处欢迎评论,也请补充我遗漏的相关信息,如有详细信息将不胜感激。
Standalone Toolchain 部分恰好涵盖了这一点。
首先,编译器需要知道 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。