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

问题描述

| 我正在编写一个bash脚本,该脚本使用Netcat通过网络连接提供帧缓冲区,但是首先我需要将其编译为本机可执行文件。我什至让该脚本在认安装了netcat的Ubuntu机器上工作。 我发现了这个https://github.com/android/platform_external_netcat,但完全没有NDK经验。显然,这根本不使用JNI或Java,因此用于制作Android应用程序的方法无法帮助我。 问题是。如何从此源代码获取可执行文件?     

解决方法

        在docs / STANDALONE-TOOLCHAIN.html下的Android sdk中查看,它描述了如何将ndk用作可以生成arm二进制文件的独立编译器。     ,        如果其他人想知道,则来自NDK文档:
SYSROOT=$NDK/platforms/android-<level>/arch-<arch>/
export CC=\"$NDK/toolchains/<name>/prebuilt/<system>/bin/<prefix>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的路径。