【问题标题】:if not gcc -static then shell says 'no such file'如果不是 gcc -static 那么 shell 会说“没有这样的文件”
【发布时间】:2013-02-13 22:40:48
【问题描述】:

我不知道为什么,但是当我使用arm-linux-gnueabi-gcc没有-static选项编译时,(Android ADB) shell 显示no such file or directory,然后尝试执行本机可执行文件.这是no such file or directory,当 shell 知道该文件存在于该路径,但不想授予用户知道该文件存在的权限时,您会得到。 (例如,您可以使用chmod 4755 进行检查,它不会返回任何错误消息)。

如果我使用 -static 选项编译,那么程序将正常执行。

为什么在没有static 选项的情况下编译会发生这种情况?

【问题讨论】:

  • 寻找共享可执行文件的帮助程序可能是个问题(/lib/ld-linux.so 或类似的东西)

标签: linux shell gcc android-ndk


【解决方案1】:

如果你静态链接程序需要的所有东西都将被内置。没有 依赖于您设备上的库,因此它将完美运行。不好的是尺寸 这种编程风格(巨大)!

如果你省略 -static 你的编译器会假设动态链接,但没有一些 你链接到 (Linux)-glibc 的魔法:崩溃! 请在网上搜索“native C on Android”教程。他们解释一切 你需要链接到 Android 的(可怕的)链接器东西)-glibc 又名“仿生”。

祝你好运 消息来源可能与您同在 马丁

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-01
    • 2014-04-04
    • 1970-01-01
    • 2018-11-10
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    相关资源
    最近更新 更多