Visual Studio에서 c ++ 솔루션을 빌드하면 xxxxx.pch 파일이 누락되었다고 불평합니다. 사전 컴파일 된 헤더를 다시 가져 오기 위해 누락 된 설정이 있습니까?
완전성에 대한 정확한 오류는 다음과 같습니다.
Error 1 fatal error C1083: Cannot open precompiled header file: 'Debug\xxxxx.pch': No such file or directory
Visual Studio에서 c ++ 솔루션을 빌드하면 xxxxx.pch 파일이 누락되었다고 불평합니다. 사전 컴파일 된 헤더를 다시 가져 오기 위해 누락 된 설정이 있습니까?
완전성에 대한 정확한 오류는 다음과 같습니다.
Error 1 fatal error C1083: Cannot open precompiled header file: 'Debug\xxxxx.pch': No such file or directory
답변:
참고 : 최신 버전의 IDE는 관련 파일의 기본 이름에 "stdafx"대신 "pch"를 사용할 수 있습니다. 아래 지침에서 pda를 stdafx로 대체해야 할 수도 있습니다. 죄송합니다. 내 잘못이 아니에요.
확인을 클릭하십시오
헤더 파일에 stdafx.h가 없으면 거기에 넣으십시오. 미리 컴파일하려는 모든 헤더를 #include하도록 편집하십시오.
운이 좋은 13. 손가락을 교차시키고 빌드를 누르십시오.
stdafx.pch
파일을 가정 하지만 xxxxx.pch
질문에서 더 복잡한 문제 (다중 PCH 설정)를 암시합니다.
사전 컴파일 된 헤더 (pch) 사용은 2 단계 프로세스입니다.
1 단계에서는 스텁 파일을 컴파일합니다 (VS200x에서는 일반적으로 stdafx.cpp
. 최신 버전은 pch.cpp
.). 이 스텁 파일에는 사전 컴파일 할 헤더 만 간접적으로 포함됩니다. 일반적으로 하나의 작은 헤더 (보통stdafx.h
또는 pch.hpp
)는 <iostream>
and와 같은 표준 헤더를 나열하며이 헤더 <string>
는 스텁 파일에 포함됩니다. 이를 컴파일하면 .pch 파일이 생성됩니다.
2 단계에서 실제 소스 코드에는 1 단계의 첫 번째 헤더와 동일한 작은 헤더가 포함됩니다. 컴파일러는이 특수 헤더를 만나면 해당 .pch 파일을 대신 읽습니다. 즉, 매번 표준 헤더를 (재) 컴파일 할 필요가 없습니다.
귀하의 경우 1 단계가 실패한 것 같습니다. 스텁 파일이 여전히 존재합니까? 귀하의 경우 아마 그럴 것입니다 xxxxx.cpp
. 이 파일 /Yc:xxxxx.pch
은 PCH 프로세스의 1 단계임을 나타내는 컴파일러 플래그이므로로 컴파일 된 파일이어야합니다 . 경우 xxxxx.cpp
존재하고 아마의 실종, 이러한 스텁 파일 /Yc:
컴파일러 옵션을.
Create (/Yc)
(복원하고 다시 사용하려면)을 선택하십시오
서버 빌드 (AppCenter)에서이 문제가 발생하고 CocoaPods를 사용하여 Podfile이 체크인되었는지 확인하십시오.
AppCenter는 Pofile을 찾고 파일에서 PODS 폴더를 찾지 못하면 "pod install"명령 만 실행합니다.
폴더가 체크인되었지만 git은 자동으로 .pch 파일을 무시하므로 (.gitignore를 확인하여이를 확인하십시오) 내 .pch가 체크인되지 않았습니다.
.pch 파일을 확인하여 문제를 정렬했지만 Appcenter가 pod install 명령을 실행하기 때문에 PODS 폴더 삭제도 작동해야합니다.
다행히도 이것은 누군가를 돕는다.
모든 것이 맞지만이 실수가있는 경우 ****. vcxproj 파일에서 다음 섹션을 확인해야합니다.
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition=
필자의 경우 구성 이름이 잘못되었습니다. 첫 번째 단어 만 있습니다.
나는이 주제가 매우 오래되었다는 것을 알고 있지만 최근 VS2015 에서이 문제를 다루었 고 빌드 폴더를 삭제하고 다시 빌드하는 데 도움이되었습니다. 이것은 프로그램을 닫으려고 시도하거나 빌드하는 동안 VS를 정지 / 정지하는 프로그램으로 인해 발생할 수 있습니다.