静态库和动态库
2016-12-04 21:14
176 查看
今天见识了一份游戏源码的静态库乱使用导致N多Bug,使得修复难度可以说是一级棒!
原来的游戏源码是定义了一个log类,里面有一份静态成员变量指针,在多个模块中使用这个log类,当每一个模块去使用的时候判断这个指针是否为空,为空表示未初始化则重新初始化,后面发现在.exe中初始化了这个成员指针,但是在其他模块又使用到这个log类,作者希望这个指针只初始化一次即可,但是未想到的是,这个成员变量在另外一个模块的地址是不一样的,导致又重新初始化了一次!
所以静态库的静态变量当嵌入了不同模块的全局或者静态的变量地址是存在不同的地址空间!
原来的游戏源码是定义了一个log类,里面有一份静态成员变量指针,在多个模块中使用这个log类,当每一个模块去使用的时候判断这个指针是否为空,为空表示未初始化则重新初始化,后面发现在.exe中初始化了这个成员指针,但是在其他模块又使用到这个log类,作者希望这个指针只初始化一次即可,但是未想到的是,这个成员变量在另外一个模块的地址是不一样的,导致又重新初始化了一次!
所以静态库的静态变量当嵌入了不同模块的全局或者静态的变量地址是存在不同的地址空间!
相关文章推荐
- Linux命令之ar - 创建静态库.a文件和动态库.so
- VS2008重新编译OpenCV2.4.10动态库和静态库
- iOS 静态库和动态库
- linux下c/c++编译器和调试器以及静态库、动态库使用汇总
- linux下的静态库和动态库的编译
- linux下动态库静态库的简单编译和链接
- Linux静态库和动态库区别(1)
- 静态库、共享库、动态库的创建和使用
- Unix动态库和静态库比较
- 宿主程序Crash与Lua是动态库还是静态库有关?
- linux下动态库与静态库
- c++ 动态库和静态库
- 关于linux静态库和动态库的分析
- 关于Linux静态库和动态库的分析
- eclipse下使用动态库、静态库相应的配置
- 看看我们的动态库和静态库都导入了和导出了什么函数(win32)
- Xcode生成动态库和静态库
- Linux下静态库和动态库的创建和使用
- Linux静态库和动态库学习总结
- 技巧:Linux 动态库与静态库制作及使用详解