链接/构建白话/行话 - 动态链接方法

时间:2013-02-14 17:22:34

标签: memory makefile static-linking dynamic-linking

我熟悉一般程序内存布局(即:文本段,数据段,堆,堆栈等),并且我试图在这里找到类似于描述和图表的内容:

http://www.tenouk.com/Bufferoverflowc/Bufferoverflow1c.html

但是,我试图找出三个不同的案例,每个案例都涉及使用外部库:

  1. 构建时外部库的静态链接(即:libtest.a中的ldflags
  2. 构建时外部库的动态链接(即:libtest.so中的ldflags
  3. 在运行时动态链接外部库(例如:libtest.so中的ldflags NOT ,但是库是通过dlopen() / {{加载的1}}来电)
  4. 有人可以更熟悉这个解释内存布局吗?我对案例dlsym()(2)之间的区别(如果有的话)特别感兴趣。

    谢谢。

1 个答案:

答案 0 :(得分:1)

我发现Solaris链接器指南(http://docs.oracle.com/cd/E26502_01/html/E26507/index.html)编写得非常好,并且在解释非常复杂的实用程序方面非常有用。

从图表的角度来看,您可能会发现http://docs.oracle.com/cd/E26502_01/html/E26507/chapter6-93046.html#scrolltochttp://docs.oracle.com/cd/E26502_01/html/E26507/chapter6-34713.html#scrolltoc的人很有帮助。