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

发布于 2024-11-11 06:44:06 字数 349 浏览 1 评论 0原文

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

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

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

I'm writing a bash script that uses Netcat to serve framebuffer over network connection, but first I need to compile it to native executable. I even got this script to work on a Ubuntu machine, where netcat is installed by default.

I found this https://github.com/android/platform_external_netcat but have no experience in NDK at all. This obviously doesn't use JNI or Java at all so default approach for making Android applications won't get me anywhere.

So the question is. How do I get an executable file from this source code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤独难免 2024-11-18 06:44:06

如果其他人想知道,这来自 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 的 netcat。 com/android/platform_external_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 中的路径。

If anybody else wants to know, this is from the NDK documentation:

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

More specifically, for the netcat from https://github.com/android/platform_external_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

Replace the paths from SYSROOT and CC as appropriate.

⒈起吃苦の倖褔 2024-11-18 06:44:06

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

Look in the Android sdk under docs/STANDALONE-TOOLCHAIN.html it describes how to use the ndk as standalone compiler which can produce arm binaries.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文