Проблема
В 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. Я не понимаю этого, поскольку я полагаю, что этот заголовочный файл, в частности, является главным кандидатом на предварительную компиляцию. Кто-нибудь может это объяснить?