root@hammerhead:/data/local # ./HelloWorld
tmp-mksh: ./HelloWorld: No such file or directory
您好!
我在 Linux Deploy 上使用 gcc 进行编译,据我所知,它会将 Ubuntu 和 chroots 下载到环境中。该文件在此 chroot 环境中运行良好。
据我所知,当文件与机器的架构不匹配时会出现此错误。但它是在同一台机器上运行的!有谁知道为什么会这样?
文件权限、所有权和上下文:
-rwxrwxrwx root root u:object_r:system_data_file:s0 HelloWorld
ID输出:
uid=0(root) gid=0(root) context=u:r:init:s0
使用/system/bin/sh
/system/bin/sh: ./Helloworld: No such file or directory
试图执行一个不存在的文件:
/system/bin/sh: ./test: not found
最佳答案
你应该用 gcc '-static' 键编译你的二进制文件。如果你不这样做,你的二进制文件将需要动态链接器 ld.so,它在 Android 上不存在(但肯定存在于你的 chroot 中!)。这意味着奇怪的错误消息“没有这样的文件或目录”。
关于Android:无法在同一手机上执行通过 Linux Deploy 编译的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47407680/