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.