关于可重定位目标文件
——ELF(可执行可链接)可重定位目标文件格式
|ELF头 |
|.text节 | ------放已编译程序的代码
|.rodata节 |--------只读数据,printf和swtich
| .data节 |------【已初始化】的全局和静态变量
|.bss节 |-------【未初始化和初始化为0】的全局和静态变量
|.symtab节|
| .rel.txt节 |
|.rel.data节|
| .debug节 |
|.strtab节 |
| .line节 |
| 节头部表 |**
以下列代码为例,分析ELF格式
/* main.c /
/ $begin main */
int sum(int *a, int n);
int array[2] = {1, 2};
int main()
{
int val = sum(array, 2);
return val;
}
/* $end main */
/* sum.c /
/ $begin sum */
int sum(int *a, int n)
{
int i, s = 0;
for (i = 0; i < n; i++) {
s += a[i];
}
return s;
}
/* $end sum */