为什么我们需要-static选项来编译本机android应用程序

时间:2011-05-10 17:45:55

标签: android compiler-construction

我正在尝试构建一个原生的android应用程序。当我试图运行它时,我收到一个错误,这个文件不存在。有点谷歌,我发现我需要在编译中使用put -static选项。我这样做了,而且很有效。但我想知道为什么这个选项是必需的?它与交叉编译有什么关系吗?

由于

1 个答案:

答案 0 :(得分:1)

选项-static生成静态链接的二进制文件,而不依赖于共享库。如果发生链接的系统使用不同的库作为运行二进制文件的系统,则会执行此操作。在大多数情况下,这是一个黑客,以避免不兼容的库的问题。静态链接二进制文件的缺点是,它比共享链接二进制文件大得多,并且它使用更多内存。通常,最好创建一个适当的构建环境,这样就可以动态链接共享库。