问题
在 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 警告。我不明白这一点,因为我认为这个头文件特别是预编译的主要候选者。谁能解释一下?