Click here to Skip to main content
15,892,965 members
Articles / Programming Languages / C++
Tip/Trick

*.pch file missing!

Rate me:
Please Sign up or sign in to vote.
1.00/5 (1 vote)
15 Feb 2010CPOL 43.2K   2   9
Sometimes, Visual c++ users see a pretty confusing error message when they compile or build their projects. the error message says :fatal error C1083: Cannot open precompiled header file: 'filename.pch': No such file or directorymy solution was :In VS, go to Project->Options, set the...
Sometimes, Visual c++ users see a pretty confusing error message when they compile or build their projects. the error message says :

MSIL
fatal error C1083: Cannot open precompiled header file: 'filename.pch': No such file or directory


my solution was :

MSIL
In VS, go to Project->Options, set the Configuration Combobox in top to 'All Configurations', and then from left pan, choose 'C/C++->Precompiled Haeders' and set 'Create/Use Precompiled headers' option to value : 'Create Precompiled headers (/Yc)'.


which turned out not to be an accurate solution (Read the Messages below).

well, here is the solution :


1) Right click on the PROJECT (in Solution Explorer) | Properties | C/C++ | Pre-compiled Headers... here you set to ** /Yu **
2) Right click on STDAFX.CPP (in Solution Explorer) | Properties | C/C++ | Pre-compiled Headers... here you set to ** /Yc **

its done.

all credits for this tip goes to :SledgeHammer01

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Iran (Islamic Republic of) Iran (Islamic Republic of)
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
QuestionWorked For Me! Thank You !!!!!!!!!!!!!!!!!+! Pin
Member 912601929-Mar-17 14:26
Member 912601929-Mar-17 14:26 
GeneralMy vote of 1 Pin
SledgeHammer0114-Feb-10 8:06
SledgeHammer0114-Feb-10 8:06 
GeneralRe: My vote of 1 [modified] Pin
The Zetta14-Feb-10 9:39
The Zetta14-Feb-10 9:39 
GeneralRe: My vote of 1 Pin
SledgeHammer0114-Feb-10 10:57
SledgeHammer0114-Feb-10 10:57 
No, there are just TWO options: /Yc and /Yu. Thats it. If you do not specify either, you do not use pre-compiled headers. Period.

/Yc is to CREATE the pre-compiled header
/Yu is to USE the pre-compiled header

You can set the pre-compiled header option globally for all C++ files, but you can override each individual C++ file as well.

Project | Options | Pre-compiled headers is the GLOBAL one that covers ALL C++ files in the project and should be set to /Yu "Use Pre-Compiled Header".

THEN, you need to go and manually override the setting for stdafx.cpp and change it to /Yc "Create Pre-Compiled Header".

That way, compiling stdafx.cpp will generate the PCH whenever it needs to. None of the other C++ files should generate the PCH.

If you get an error about the PCH missing, that indicates you screwed up your settings.

When your project is set up correctly as indicated above, you can delete the PCH and it will be regenerated when the stdafx.cpp is compiled.

If you set /Yc on every file, your compile will be very, very, very, very, very, very slow.

If you set /Yc on more then one file, you are defeating the purpose of PCH.

You should never have to touch the settings after you set them correctly.
GeneralRe: My vote of 1 Pin
The Zetta14-Feb-10 21:24
The Zetta14-Feb-10 21:24 
GeneralRe: My vote of 1 Pin
SledgeHammer0115-Feb-10 7:13
SledgeHammer0115-Feb-10 7:13 
GeneralRe: My vote of 1 Pin
The Zetta15-Feb-10 8:34
The Zetta15-Feb-10 8:34 
GeneralRe: My vote of 1 Pin
SledgeHammer0115-Feb-10 8:40
SledgeHammer0115-Feb-10 8:40 
GeneralRe: My vote of 1 Pin
The Zetta15-Feb-10 21:31
The Zetta15-Feb-10 21:31 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.