Linux动态库(.so)链接探究同一个动态库被间接链接多次时类内静态变量使用问题(附带c++源码解释)
介绍一种场景,有一个抽象基类生成了一个动态库,记为libcompo.so,继承该基类的具体实现有两个组件,也各自生成了动态库libcompo1.so和libcompo2.so,由于使用到了基类,因此这两个库也是会分别链接基类库的,也就是libcompo.so,然后在可执行文件里,我们为了软件各个组件之间的解耦通过反射技术注册的方式动态加载具体组件,因此可执行文件只用到了该抽象基类的指针,只需要在编译时链接libcompo.so即可,在运行时通过dlopen()加载生成的动态库即可完成工作。 最终软件
原创
2021-07-08 16:45:26 ·
1599 阅读 ·
0 评论