How to fix .pch file missing on build?

后端 未结 10 1036
日久生厌
日久生厌 2020-11-29 15:18

When I build my c++ solution in Visual Studio it complains that the xxxxx.pch file is missing. Is there a setting I am missing to get the pre-compiled headers back?

相关标签:
10条回答
  • 2020-11-29 16:08

    Try Build > Clean Solution, then Build > Build Solution. This works for me.

    0 讨论(0)
  • 2020-11-29 16:12

    If everything is right, but this mistake is present, it need check next section in ****.vcxproj file:

    <ClCompile Include="stdafx.cpp">
      <PrecompiledHeader Condition=
    

    In my case it there was an incorrect name of a configuration: only first word.

    0 讨论(0)
  • 2020-11-29 16:18

    I was searching for the iOS PCH file having the same problem, if you got here like me too, the solution that I've found is by clearing derived data; Close Simulator(s), go to xCode prefs -> locations -> go to the derived data file path, close xCode, delete the files in the derived data folder, re launch and cheers :)

    0 讨论(0)
  • 2020-11-29 16:20

    Precompiled Header (pch) use is a two-step process.

    In step one, you compile a stub file (In VS200x it's usually called stdafx.cpp. Newer versions use pch.cpp.). This stub file indirectly includes only the headers you want precompiled. Typically, one small header (usually stdafx.h or pch.hpp) lists standard headers such as <iostream> and <string>, and this is then included in the stub file. Compiling this creates the .pch file.

    In step 2, your actual source code includes the same small header from step 1 as the first header. The compiler, when it encounters this special header, reads the corresponding .pch file instead. That means it doesn't have to (re)compile those standard headers every time.

    In your case, it seems step 1 fails. Is the stub file still present? In your case, that would probably be xxxxx.cpp. It must be a file that's compiled with /Yc:xxxxx.pch, since that's the compiler flag to indicate it's step 1 of the PCH process. If xxxxx.cpp is present, and is such a stub file, then it's probably missing its /Yc: compiler option.

    0 讨论(0)
提交回复
热议问题