全局变量可定义在共享模块,也可以定义在程序主模块。无论全局变量定义在共享模块还是主模块都是通过GOT间接访问。主模块是第一个载到内存中的,运行时不会再进行地址的重定位,所以链接时就要确定所有引用全局变量的地址。主模块为所有引用的全局变量产生一个副本,包括定义在其他共享模块中的全局变量。当共享模块发现主模块中有需要引用的全局变量副本时就会使用该副本的地址进行重定位,如果主模块中没有该全局变量的副本就从共享模块中找。
动态链接时如何访问在其他模块中的全局变量
最新推荐文章于 2024-08-29 18:41:20 发布