将C代码(netcat)编译为本机Android可执行文件

我正在编写一个使用Netcat通过网络连接提供帧缓冲的bash脚本,但首先我需要将其编译为本机可执行文件。 我甚至让这个脚本在Ubuntu机器上工作,默认安装netcat。

我发现这个https://github.com/android/platform_external_netcat但根本没有NDK经验。 这显然不会使用JNI或Java,因此制作Android应用程序的默认方法不会让我随处可见。

所以问题是。 如何从此源代码获取可执行文件?

查看docs / STANDALONE-TOOLCHAIN.html下的Android sdk,它描述了如何将ndk用作可以生成arm二进制文件的独立编译器。

如果有人想知道,这来自NDK文档:

SYSROOT=$NDK/platforms/android-/arch-/ export CC="$NDK/toolchains//prebuilt//bin/gcc --sysroot=$SYSROOT" $CC -o foo.o -c foo.c 

更具体地说,对于来自https://github.com/android/platform_external_netcat的netcat

 SYSROOT=$NDK/platforms/android-19/arch-arm CC=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=$SYSROOT $CC -DANDROID -c -o atomicio.o atomicio.c $CC -DANDROID -c -o netcat.o netcat.c $CC -o netcat atomicio.o netcat.o 

根据需要替换SYSROOT和CC的路径。