“没有这样的文件或目录”试图在Android设备上执行linux二进制文件

时间:2012-11-27 10:15:35

标签: android linux native

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

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

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

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

可能是什么问题?

2 个答案:

答案 0 :(得分:48)

如果您正在使用像Ubuntu 64这样的64位平台,那么本技巧可以帮助您解决问题。试着简单地安装i386 32位兼容库 易于得到:

sudo apt-get install ia32-libs

对我来说很有用。如果你陷入同样的​​麻烦,请告诉我。

适用于Ubuntu 13.10或更高版本

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

从Ubuntu 13.10开始,现在必须运行它: sudo apt-get install lib32z1,您可能还需要获取C ++ stdlibs:sudo apt-get install lib32ncurses5 lib32stdc++6

答案 1 :(得分:2)

要修改上面的aditya评论,您还可以在Ubuntu 13.10中使用以下内容来表示C ++ stdlib:

sudo apt-get install lib32ncurses5 libstdc++6:i386