問題
CodeGear C++Builder 2009 では、プリコンパイル済みヘッダー インジェクションを使用して、コンパイル時間を大幅に短縮しています。複数のプロジェクトに同じヘッダー ファイルが挿入されています。一部のプロジェクトをコンパイルすると、コンパイラは次の警告を表示します。
[BCC32 Warning] Dateutils.hpp(43): W8058 Cannot create pre-compiled header: initialized data in header
この例では、Dateutils.hppが問題のファイルです (CodeGear のヘッダー)。これが他のヘッダーでも発生するのを見てきました。これが興味深いのは、これが一部のプロジェクトでのみ発生することです (同じヘッダーが挿入されます)。
以前は、最終的にこの誤ったファイルをインクルードしたヘッダーを見つけて、コンパイル済みのヘッダー ファイルから削除する必要がありました。ここで何が起こっているのか、それを修正する最善の方法を知っている人はいますか?
アップデート
最終的にヘッダー ファイルに対して消去法を実行したところ、説明できない興味深い発見がありました。含まれる 50 以上のヘッダーのうち、vcl.hを削除すると、W8058 警告が表示されなくなりました。特にこのヘッダー ファイルがプリコンパイルの最有力候補であると想像するので、これは理解できません。誰かがそれを説明できますか?