&引用;没有这样的文件或目录;尝试在Android设备上执行linux二进制文件
我使用Android GCC工具链(纯linux,没有Android或NDK)构建了一个本地linux ARM二进制文件 我通过adb外壳从我的PC连接到一台运行Android 4的平板电脑。 我将二进制文件“推送”到设备上的/system/bin中,希望能在那里执行。我用chmod777将其标记为可执行文件 如果我尝试执行它,我会得到“没有这样的文件或目录” 进一步资料: 这个小程序使用fc和fm库。由于ARM工具链似乎没有crt1,从我发现的一个示例来看,它通常包含启动代码,因此我们在android构建中搜索了包含它的文件,找到了crtbegin_dynamic和crtend_dynamic,但是对于_static等价物,缺少一对,因此我没有将-static传递给GCC。它是用“-nostlib”建造的&引用;没有这样的文件或目录;尝试在Android设备上执行linux二进制文件,android,linux,native,Android,Linux,Native,我使用Android GCC工具链(纯linux,没有Android或NDK)构建了一个本地linux ARM二进制文件 我通过adb外壳从我的PC连接到一台运行Android 4的平板电脑。 我将二进制文件“推送”到设备上的/system/bin中,希望能在那里执行。我用chmod777将其标记为可执行文件 如果我尝试执行它,我会得到“没有这样的文件或目录” 进一步资料: 这个小程序使用fc和fm库。由于ARM工具链似乎没有crt1,从我发现的一个示例来看,它通常包含启动代码,因此我们在and
有什么问题吗?如果您在Ubuntu 64这样的64位平台上工作,那么这个技巧可能会帮助您解决这个问题。只需简单地安装i386 32位兼容库即可 apt get:
sudo apt-get install ia32-libs
这对我很有效。如果你遇到同样的麻烦,请告诉我
适用于Ubuntu 13.10或更高版本
正如阿迪蒂亚在对该答案的评论中所说:
从Ubuntu 13.10开始,现在必须运行以下程序:
<代码> SUDOT APT安装LIb32 Z1 < /C>,您可能需要获得C++ STDLIB,用这个:<代码> SUDO APT get安装LIb32 NCURSIS5 LIb32 STDC++ + 6 < /COD> < /P> < P>修改ADITYA的注释,您也可以使用以下的Ubuntu 13.10中的C++ STDLIB:< /P>
sudo apt-get install lib32ncurses5 libstdc++6:i386
从Ubuntu13.10开始,看起来IA32libs已经被以下软件包所取代。现在必须运行这个代码:<代码> SUDOAPT安装LIb32 Z1 < /Cord>我必须得到C++ STDLIB,用这个代码:<代码> SUDO APT get安装LIb32 NCURSIS5 LIb32 STDC++6 >这可能帮助其他人在其Ubuntu Linux系统上运行ADB可执行文件,它似乎没有任何问题。这涉及到在安卓系统下运行二进制程序。不用说,Android没有使用debian风格的打包系统。这与提出的问题无关,这涉及到在Android本身上运行可执行文件——一个不使用debian打包系统的linux。您需要使用nm或类似工具来查找可执行文件的依赖项,但实际上,你应该只使用NDK gcc来为Android构建,除非你坚持用艰难的方式来做事情。请注意,这个问题与开发机器缺少库无关,尽管神秘地吸引了关于这个完全不同主题的流行答案。