我有两个 C 模块,每个模块都使用另一个的某些功能。在我的 makefile 中,我这样表达了这一点:
moduleA.h: common.h moduleB.h
moduleB.h: common.h moduleA.h
由于明显的原因,这会生成一个循环引用警告,尽管它继续编译得很好。解决这个问题的正确方法是什么?我是否应该重构这些模块以创建第三个 - moduleC - 将两者联系在一起?
模块 A 是一个日志模块,模块 B 是一个 cronjob 实现。Logging 使用 cronjob 来安排日志轮换,而 cronjob 使用 logging 来告诉每个人它在做什么。
模块 C 会相当小;只需创建一个 cronjob 来调用日志记录轮换函数,但日志记录不需要了解 cronjob。当然,Cronjob 仍然依赖于日志记录。
还是我应该忽略警告?