我正在编写一个使用Netcat通过网络连接提供帧缓冲的bash脚本,但首先我需要将其编译为本机可执行文件。我甚至让这个脚本在Ubuntu机器上运行,默认安装了netcat。
我发现了这个https://github.com/android/platform_external_netcat,但根本没有NDK的经验。这显然不会使用JNI或Java,因此制作Android应用程序的默认方法不会让我随处可见。
所以问题是。如何从此源代码中获取可执行文件?
答案 0 :(得分:3)
如果有人想知道,这来自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
的netcatSYSROOT=$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的路径。
答案 1 :(得分:1)
查看docs / STANDALONE-TOOLCHAIN.html下的Android sdk,它描述了如何将ndk用作可以生成arm二进制文件的独立编译器。