android - "No such file or directory"试图在 Android 设备上执行 linux 二进制文件

标签 android linux native

我使用 Android GCC 工具链(普通 linux,没有 android 或 NDK)构建了一个原生 linux ARM 二进制文件。

我通过 adb shell 从我的 PC 连接到运行 Android 4 的平板电脑。 我将该二进制文件“adb push”到该设备上的/system/bin 中,希望我能让它在那里执行。我用 chmod 777 将其标记为可执行。

如果我尝试执行它,我会得到“没有这样的文件或目录”。

更多信息: 这个小程序使用 fc 和 fm 库。由于 ARM 工具链似乎没有 crt1,从我发现的一个示例中,它通常包含启动代码,我们在 android 构建中搜索包含它的文件,找到 crtbegin_dynamic 和 crtend_dynamic,但对于 _static 等效项,其中之一丢失了,所以我没有将 -static 传递给 GCC。它是用“-nostdlib”构建的。

可能是什么问题?

最佳答案

如果您在 Ubuntu 64 等 64 位平台上工作,那么此提示可能会帮助您解决问题。只需尝试简单地安装 i386 32 位兼容性库 容易得到:

sudo apt-get install ia32-libs

它对我很有用。如果您遇到同样的麻烦,请告诉我。

适用于 Ubuntu 13.10 或更高版本

正如 aditya 在对此答案的评论中所说:

从 Ubuntu 13.10 开始,现在必须运行它: sudo apt-get install lib32z1,您可能还需要获取 C++ 标准库,使用以下命令:sudo apt-get install lib32ncurses5 lib32stdc++6

关于android - "No such file or directory"试图在 Android 设备上执行 linux 二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13581927/

相关文章:

linux - 如果文件不存在,则毫无异常(exception)地从 GCS 中删除

android - monodroid .so 文件可以通过 .NET 代码进行管理吗?

android - flutter 检测指针设备类型

linux - Bash:cd 到程序输出提供的目录

android - 如何以编程方式注册网络连接更改接收器?

简单查询的 MySQL 性能问题

java - Titanium Mobile 是否将 Javascript 转换为 native Java 或 Objective C 编译代码?

android - React Native - 禁用 "Screen Size"设置

android - 提供程序 "MediaProvider"正在使用中

php - 在 Android 上使用 SSL 的 Json