linux - 动态链接与静态链接与 PIC 与非 PIC

标签 linux unix native static-linking dynamic-linking

让我们快速回顾一下以下案例:

  • 不将动态链接与位置无关代码相结合。我可能敢说这是一个不可能的案例,但当我深入探讨这个主题时,我不太确定。
  • 将静态链接与位置无关代码相结合。我相信这作为一个有效的组合是完全有意义的。

但这两个选项实际上都是正确的,不是吗?

我想浏览一张显示相关案例的四方图,但没有找到。

最佳答案

虽然 PIC/非 PIC 和动态/静态链接是独立的概念,但 PIC 和动态链接之间存在“亲缘关系”。 然而,除了小的性能损失之外,也没有理由反对在静态库中使用 PIC。

此外,还可以使动态库可重定位。这种方法通常在 MIPS 系统中完成。对于静态链接,无论如何都经常使用可重定位代码。

此外,在MMUs时代,PIC/nonPIC和静态/动态链接的关系被解耦,或者更准确地说:PIC变得不那么重要了。

总而言之:任何组合都是可能的。

关于linux - 动态链接与静态链接与 PIC 与非 PIC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24162132/

相关文章:

c++ - 根据该实用程序的源代码创建类似 Linux "df"的实用程序

linux - ELF 的代码段何时加载到内存中?

linux - 内存泄漏

java - jtype (JNI) 和 C/C++ 的类型有什么区别?

Linux - Bash 将字符串重定向到文件

unix - 为什么 SSH 不能在 stdin 上使用管道密码?

unix - 如何在unix中替换文件的字符串

python - 为 Python 解释器建立的每个连接绑定(bind)传出 IP 地址

java - Mobile - Codename - 怎么比母语快?

android - native 堆跟踪问题 - "Native Heap"选项卡为空