我指的是模块中定义的非静态全局变量,而不是外部变量。
为什么必须通过GOT引用?为什么不使用相对地址?(因为.data部分中的全局变量与.text部分中的引用之间的距离是常量,它也与位置无关)
答案 0 :(得分:1)
由于你的变量不是static
,所以在ELF上它可以被插入(想想LD_PRELOAD)。
答案 1 :(得分:0)
我也有同样的困惑。 如果在两个DSO中都定义了一个具有相同名称的全局变量,并且它们动态链接到一个可执行文件中,那么两个库是否都会访问该变量的同一副本? 变量所在的库(库的数据部分)取决于库加载的顺序?