多份源文件和静态库的产生的悲剧

来源:互联网 发布:泛神论 知乎 编辑:程序博客网 时间:2024/05/16 16:56


有2个工程


project A, B分别是处理不同逻辑的工程,但是此二者都用到parser功能(在parser文件夹下,里面包含了实现parser功能的源文件),但是某人为了方便或偷懒,没有将parser功能的那些实现组织成一个工程.


而是分别在A, B工程都有一份parser功能的实现代码文件, A是静态库,B是动态库.且B工程中是依赖A的.


有一天,有人修改了B中parser里面某个函数的实现细节,再次重新编译A,B,


悲剧即将发生,


链接的时候,由于B是依赖A,由于链接顺序的问题,导致A中的某个函数的实现链接到B产生的obj文件.这导致A的某些函数功能失效.


请不要偷懒,把重复代码重构成单独的库,为扩展函数增加参数或者接口来面对细节变化吧.


原创粉丝点击