Ошибка «fatal error while reparsing translation unit» при работе с precompiled header может возникать по разным причинам, среди них:
- Изменения в файле, который используется для предварительно скомпилированного заголовка. discourse.llvm.org Компилятор не замечает эти изменения и не перестраивает файл с precompiled header. habr.com
- Отсутствие файла, из которого должен генерироваться precompiled header. habr.com Например, если сначала очистить проект, а потом попробовать скомпилировать один файл, то соответствующий файл precompiled header ещё не создан. habr.com
- Неправильное включение файла, который используется для precompiled header. learn.microsoft.com habr.com Например, если в файл не включён «stdafx.h», хотя файл компилируется с ключом /Yu, то возникает ошибка. habr.com
- Неправильное использование файлов разных типов. habr.com Например, если в проекте есть файлы C и C++, то для них нельзя использовать единый precompiled header. habr.com
Для устранения ошибки рекомендуется внимательно проверить содержимое файла, который используется для precompiled header. habr.com В него должны входить только заголовочные файлы, которые не изменяются или изменяются крайне редко. habr.com