Compilation 什么';直接链接和作为静态库链接的区别是什么
两者之间有什么区别吗Compilation 什么';直接链接和作为静态库链接的区别是什么,compilation,static-linking,Compilation,Static Linking,两者之间有什么区别吗 gcc a.c b.c -o b.out 及 ? 在什么情况下,我应该选择一个而不是另一个?引用以下部分: 动态链接可以减少总资源消耗(如果多个进程共享同一个库(包括 当然,版本相同)。我相信这就是论点 这推动了it在大多数环境中的应用。这里是“资源” 包括磁盘空间、RAM和缓存空间。当然,如果你的 动态链接器不够灵活,存在发生错误的风险 动态链接意味着缺陷修复和库升级可以传播以改进您的产品,而无需您发货 插件总是需要动态链接 静态链接意味着您可以知道代码将在非常有限的
gcc a.c b.c -o b.out
及
?
在什么情况下,我应该选择一个而不是另一个?引用以下部分:
- 动态链接可以减少总资源消耗(如果多个进程共享同一个库(包括 当然,版本相同)。我相信这就是论点 这推动了it在大多数环境中的应用。这里是“资源” 包括磁盘空间、RAM和缓存空间。当然,如果你的 动态链接器不够灵活,存在发生错误的风险
- 动态链接意味着缺陷修复和库升级可以传播以改进您的产品,而无需您发货
- 插件总是需要动态链接
- 静态链接意味着您可以知道代码将在非常有限的环境中运行(在启动过程的早期,或在rescue中) 模式)
- 静态链接可以使二进制文件更容易分发到不同的用户环境(代价是发送大量的 资源匮乏计划)
- 静态链接可能允许稍微更快的启动时间,但这在某种程度上取决于您的应用程序的大小和复杂性 程序和OSs加载策略的细节
gcc a.c -o a.o
ar rcs liba.a a.o
gcc b.c -la -o b.out