我不知道为什么,但是当我使用no such file or directory
编译时{(1}})shell arm-linux-gnueabi-gcc
没有 -static
选项,然后尝试执行本机可执行文件。这是当shell知道文件存在于该路径时获得的no such file or directory
,但不希望授予用户知道文件存在的权限。 (例如,您可以查看chmod 4755
,但不会返回错误消息)。
如果我使用 -static
选项编译,那么程序将正常执行。
为什么在没有static
选项的情况下编译时会发生这种情况?
答案 0 :(得分:1)
如果您静态链接程序需要的所有内容将被内置。没有 依赖于您设备上的库,因此它将完美运行。尺寸不好 这种编程风格(巨大的)!
如果省略-static,您的编译器会假定动态链接,但没有一些 你链接的魔法(Linux)-glibc:崩溃! 请在网上搜索“Android上的原生C”教程。他们解释了所有 (可怕的)链接器 - 你要链接Android的东西)-glibc又名“Bionic”。
祝你好运 可能消息来源与你同在 马丁