Xcode 버전 4.6.2 (4H1003) 컴파일러 오류


88

방금 Xcode 버전 4.6.2 (4H10003)로 업데이트하고 시뮬레이터에서 이전에 작동하던 응용 프로그램 프로젝트를 실행하려고했지만 다음 오류가 발생하고 빌드가 실패했습니다.

컴파일러 ((clang-425.0.28))와 다른 분기 ((clang-425.0.27))에서 빌드 된 PCH 파일

무엇이 잘못되었으며 어떻게 해결할 수 있습니까?


Product-> Clean을 시도하고 시뮬레이터에서 이전에 빌드 한 앱을 삭제했습니다. 둘 다 작동하지 않았습니다.
— OscarTheGrouch 2013

2
"클린 빌드 폴더"는 장치에 빌드 할 때 내 문제를 해결하지 못했습니다 (여러 번 시도). "클린 빌드 폴더"를 수행하고 시뮬레이터로 빌드 한 다음 장치로 빌드해야합니다.
— DBD

답변:


183

프로젝트를 청소하십시오. 전체 빌드 폴더와 중간체를 정리할 수 있도록 Option을 누릅니다. Xcode를 종료하고 Finder에서 DerivedData 폴더의 전체 내용을 삭제해야 할 수 있습니다. 여기서 설명하는 것처럼 캐시를 비우고 모든 대상을 정리하는 방법 Xcode 4


예, 청소도 저에게 효과적이었습니다. 오류는 미리 컴파일 된 헤더가 다른 버전으로 빌드되었으며 최신 컴파일러 버전과 호환되지 않는다는 의미입니다.
— zingle-dingle 2013

이전 Xcode 업그레이드에서 이런 일이 발생하지 않았다면 운이 좋았습니다. 나에게 일어난 일입니다. 잠시 후에 익숙해집니다 ...
— matt

이것은 옵션을 누른 상태에서 '빌드 폴더 정리'를 수행 한 후에 저에게 효과적이었습니다. 감사!
— 누가 복음

1
이것은 나를 위해 일했습니다 .... 옵션을 유지하는 것이 다른 종류의 청소를 수행하는지 몰랐습니다.
— OscarTheGrouch

이것은 Xcode 내에서 빌드하는 경우에만 작동합니다. 명령 줄에서 빌드하는 경우 아래 Rodrigo Lima의 게시물을 참조하세요.
— Jeff

21

프로젝트의로 이동하여 Build Settings이라는 설정을 찾은 Precompiled Headers Cache Path다음 해당 폴더를 삭제합니다.


이 조치 만이 언급 된 문제를 해결하는 데 도움이되었습니다. 감사!
— Orange


9

에서 엑스 코드 4.6.2 릴리스 노트

알려진 문제

건물

이전에 Xcode 4.6.1 또는 이전 버전으로 빌드 된 제품을 빌드 할 때 다음과 유사한 오류와 함께 빌드가 실패합니다.

컴파일러 ((clang-425.0.28))와 다른 분기 ((clang-425.0.27))에서 빌드 된 PCH 파일

이 문제를 해결하려면 제품을 제작하기 전에 제품> 청소를 선택하십시오. 13663167

수행 제품> 청소 작업


1
예, 이전 버전의 문제 였지만 지금은 릴리스 노트에서 언급 할 가치가있는 것으로 확인되었습니다. 또한 Xcode를 IDE로 사용하지 않는 사람들에게는 솔루션을 제공하지 않습니다 (@sycx는 사전 컴파일 된 헤더 캐시 경로 지우기).
— A-Live

9

위의 모든 것을 시도해 보았고 Xcode UI에서 잘 작동하지만 명령 줄 에서 xcodebuild 를 실행할 때 여전히 실패했습니다 .

이는 다른 라이브러리와 사전 컴파일 헤더에 대한 종속성 때문이었습니다. 명령 줄에서 실행할 때 xcodebuild는 여기에서 미리 컴파일 된 헤더를 저장 / 읽는 것처럼 보입니다.

/var/folders/v0/ztxy9kls7sv05dpmvjgg_xwr0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders

해당 폴더를 정리 한 후 xcodebuild가 성공했습니다.


2
이 폴더 위치는 모든 사람에 따라 다르므로 정리할 올바른 폴더를 찾는 빠른 방법은 find + grep ... sudo find / var / folders | grep SharedPrecompiled
— Greg Combs

1
나는 같은 문제가 있었다. Xcode 내에서 빌드 할 수 있지만 명령 줄에서 실행하는 데 실패했습니다. 나는 실행을 끝내고 sudo find /private/var/folders -name SharedPrecompiledHeaders결과 디렉토리를 비웠다. 매력처럼 작동했습니다.
— Jeff

추가 찬성표를 줄 수 있다면 그렇게 할 것입니다. 명령 줄에서 빌드 할 때 확실히 청소가 작동하지 않는 것 같습니다. 그럴 것이라고 예상했지만 미리 컴파일 된 헤더를 찾을 수있는 위치를 아는 것이 매우 도움이되었습니다.
— John Bowers

4

특히 명령 줄에서 빌드하거나 빌드 스크립트가있는 경우 xcode 대상 정리만으로는 충분하지 않습니다. 이 폴더를 삭제해야합니다.

미리 컴파일 된 헤더의 정확한 위치는 프로젝트에서 찾을 수 있습니다. 폴더 경로의 일부는 무작위로되어 있습니다.

Target -> build settings => "Build locations" -> Precompiled headers cached path

터미널을 실행하고이 폴더로 이동하여 삭제 (명령어 사용),

#rm -fr SharedPrecompiledHeaders

여기에 이미지 설명 입력


좋은 대답! 그러나 나는 그 위치에 그러한 폴더가 없었습니다 (ls -lAhF를 사용하는 터미널 프롬프트에서도). 그러나 Xcode를 닫은 다음 com.apple.Xcode.501 폴더를 삭제하면 정상적으로 작동했습니다.
— RedYeti

미리 컴파일 된 헤더의 정확한 위치는 프로젝트에서 찾을 수 있습니다. 폴더 경로의 일부는 무작위입니다 (나는 추측합니다), 특히 /var/folders/xx..xxx/C 뒤에 있습니다.
— karim

죄송합니다. 잘 모르겠습니다. 예, 경로는 항상 / var / folders / * 아래로 변경되지만 거기에 없었던 폴더는 "SharedPrecompiledHeaders"였습니다. 저를 놀라게했습니다. 그러나 내가 언급 한 상위 폴더를 제거하면 문제없이 작동합니다.
— RedYeti

4

수동으로 삭제해야 ~/Library/Developer/Xcode/DerivedData/ Clean이 작동하지 않았습니다.


0

"command + shift + k"를 사용하여 프로젝트를 정리하면 괜찮습니다.


0

프로젝트 정리 및 실행

제품-> 청소 후 실행하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.