私は2つのCモジュールを持っており、それぞれが他方の機能を使用しています。私のmakefileで、私はこれを次のように表現しました。
moduleA.h: common.h moduleB.h
moduleB.h: common.h moduleA.h
明らかな理由で、これは循環参照警告を生成しますが、正常にコンパイルされます。これを解決する正しい方法は何ですか?モジュールをリファクタリングして、2つを結び付ける3番目のmoduleCを作成する必要がありますか?
モジュールAはロギングモジュールであり、モジュールBはcronjobの実装です。ロギングはcronjobを使用してログのローテーションをスケジュールし、cronjobはロギングを使用してすべての人に何が起こっているかを伝えます。
モジュールCはかなり小さいでしょう。cronjobを作成してロギングローテーション関数を呼び出すだけですが、ロギングはcronjobについて知る必要はありません。もちろん、cronjobは依然としてロギングに依存します。
それとも、警告を無視する必要がありますか?