今天见识了一份游戏源码的静态库乱使用导致N多Bug,使得修复难度可以说是一级棒!
原来的游戏源码是定义了一个log类,里面有一份静态成员变量指针,在多个模块中使用这个log类,当每一个模块去使用的时候判断这个指针是否为空,为空表示未初始化则重新初始化,后面发现在.exe中初始化了这个成员指针,但是在其他模块又使用到这个log类,作者希望这个指针只初始化一次即可,但是未想到的是,这个成员变量在另外一个模块的地址是不一样的,导致又重新初始化了一次!
所以静态库的静态变量当嵌入了不同模块的全局或者静态的变量地址是存在不同的地址空间!