I’m one of the few developers at my company that is using Windows 7. Most of the projects in the solution I am working with are C#, but some are C++. Periodically I get the following error building every single source file in the C++ project on my machine:
fatal error C1859: 'Debug\MyProject.pch' unexpected precompiled header error, simply rerunning the compiler might fix this problem
Nothing I did seemed to solve the problem short of rebooting, which seems to be a common experience (see here and here). Today I stumbled upon a post on the Visual C++ Team Blog that explains what is going on.
It turns out that the anti-malware improvements in Windows 7 are the culprit. PCH files are implemented basically as a memory dump, including pointers. This worked fine on previous versions of Windows, but Windows 7 upped the ante making this approach unworkable.
The new behavior that fixes this problem is available in Visual Studio 2010. The Visual C++ team has also released a hotfix for Visual Studio 2008 SP1 with the fix.
Resources
- Visual C++ Precompiled Header Errors on Windows 7 by Visual C++ Team
Fix for Visual C++ 2008 SP1 compiler error C1859 on Microsoft Connect
Note that if you are building in VS2010 but targeting the VS2008 toolset, this hotfix still applies.
Awesome. Seems to have worked perfectly for me. Thanks for sharing.
Thank you Aidan Ryan! You saved my day 😀