【发布时间】:2014-05-20 23:14:01
【问题描述】:
假设我正在创建包含头文件的共享对象库 libz.so,比如说 stdio.h。作为 libc 库一部分的 stdio.h 代码在系统中静态链接。动态链接器如何解析从 DSO 到静态链接的 libc 文件的符号引用?
例如: 假设我将带有以下代码的 z.c 文件编译为 SO。
#include <stdio.h>
int foo(void){
printf("hello world!\n");
}
动态链接器如何知道 printf 在静态链接的 libc 中的位置并在运行时修补 printf 地址?
【问题讨论】: