深入理解计算机系统(读书笔记)

link

  • 对于一个最终链接而成的elf文件,它里面所包含的东西,就是.text段,.rodata段,.data段,.bss段,.symtab等这些数据内容


  • 对于符号表,有weak和strong之分,没有初始化的符号定义为weak,已经初始化的为strong,如果link发现两个relocatable object含有相同的符号定义时,有三种情况:
1. 两个模块都是strong,则链接报错;
2. 一个strong,一个weak,则使用strong;
3. 两个weak,使用任意一个,但这种情况可能会导致比较隐藏的错误;

静态链接

  • 链接静态库时,只会把引用到的符号加入到最终的可执行文件中;不相关的符号不会被加入;
  • 重定向:把不同的.o文件中的data端,符号段等合并成一个,形成最终的可执行文件;

猜你喜欢

转载自blog.csdn.net/htjoy1202/article/details/70208983
今日推荐