android - 是否可以在 Android 上运行静态链接的 ELF 二进制文件?

标签 android elf static-linking

Android 基于 Linux 内核,据我所知,静态链接的 ELF 二进制文件只需要一个内核即可运行。虽然 Android 不包含 glibc,但系统调用接口(interface)应该仍然存在,内置在内核中。我知道任何实际应用程序在静态链接时都会巨大,但这纯粹是假设。有用吗?

最佳答案

我想您想要做的是在您的 Linux 机器上获取一些静态库并将它们与您自己的目标文件静态链接,以尝试克服它们在 Android 上的缺失。这样做的问题是两台机器几乎肯定不会使用相同的 CPU 架构,因此这些库不是为 Android 构建的,Android 也不会“理解”机器代码。理论上,您也必须交叉编译这些库并将您的程序与之链接。

但是 Android 已经有一个名为 Bionic 的标准 C 库。它取代了 Android 上的 glibc。

关于android - 是否可以在 Android 上运行静态链接的 ELF 二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40458754/

相关文章:

linux - 为什么gdb显示的LOAD程序头虚拟地址和运行时虚拟地址不一样?

gcc - 为什么独立的 C hello 程序在用作动态链接器时会崩溃

c++ - 从 Visual Studio 2017 引用静态库有多简单?

android - 如何在录音后创建 .wav 文件 - Android Studio

android - 为什么 EmojiCompat 只能在 Android 19+ 上使用?

c - 与gcc中的共享库链接时如何为可执行文件生成位置相关代码?

c++ - 如何强制库在qt creator中静态链接

linux - 如何静态链接使用./configure的Linux软件?

android - javax.net.ssl.SSLPeerUnverifiedException : No peer certificate on Android 4. x 和 5.x

android - AsyncTask 仍在阻塞 UI(UI 未响应)