如果不是gcc -static那么shell说“没有这样的文件”

时间:2013-02-13 22:40:49

标签: linux shell gcc android-ndk

我不知道为什么,但是当我使用no such file or directory 编译时{(1}})shell arm-linux-gnueabi-gcc没有 -static选项,然后尝试执行本机可执行文件。这是当shell知道文件存在于该路径时获得的no such file or directory,但不希望授予用户知道文件存在的权限。 (例如,您可以查看chmod 4755,但不会返回错误消息)。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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