When precompiling, #pragma once directives are handled correctly, but once we try to use the pch, these directives are lost and the compiler will #include again every real header file, even if it's already contained in the pch file.
The "easy" workaround is to fallback to include guards instead of #pragma once (or use both). -- Summary: #pragma once is not "exported" from the precompiled headers Product: gcc Version: 4.2.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: pch AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: bohan dot gnu at retropaganda dot info GCC build triplet: x86_64-pc-linux-gnu GCC host triplet: x86_64-pc-linux-gnu GCC target triplet: x86_64-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39029