Lỗi trình biên dịch Xcode phiên bản 4.6.2 (4H1003)


88

Tôi vừa cập nhật lên phiên bản Xcode 4.6.2 (4H10003) và cố gắng chạy một dự án ứng dụng đã hoạt động trước đó trong trình mô phỏng và nhận được lỗi sau và quá trình xây dựng không thành công.

Tệp PCH được tạo từ một nhánh khác ((clang-425.0.27)) với trình biên dịch ((clang-425.0.28))

Điều gì đã xảy ra và làm thế nào nó có thể được sửa chữa?


Tôi đã thử thực hiện Sản phẩm -> Xóa và xóa ứng dụng đã tạo trước đó khỏi trình mô phỏng. Không hoạt động.
OscarTheGrouch

2
"Thư mục bản dựng sạch" không giải quyết được vấn đề của tôi khi xây dựng thiết bị (đã thử nhiều lần). Tôi đã phải "Làm sạch thư mục xây dựng", xây dựng để mô phỏng, sau đó xây dựng cho thiết bị thì nó đã được giải quyết.
DBD

Câu trả lời:


183

Làm sạch dự án; giữ Option để bạn đang dọn dẹp toàn bộ thư mục xây dựng và các sản phẩm trung gian. Bạn có thể phải thoát Xcode và vứt bỏ toàn bộ nội dung của thư mục DerivedData trong Finder, như tôi mô tả ở đây: Cách làm trống bộ nhớ đệm và làm sạch tất cả mục tiêu Xcode 4


Vâng, một công việc sạch sẽ cho tôi. Lỗi chỉ nói rằng các tiêu đề được biên dịch trước được xây dựng với một phiên bản khác và không tương thích với phiên bản trình biên dịch mới nhất.
zingle-dingle

Nếu điều này không xảy ra với bạn trong các lần nâng cấp Xcode trước đó, thì bạn chỉ là người may mắn. Nó đã xảy ra với tôi. Bạn làm quen với nó sau một thời gian ...
mờ

Điều này đã hiệu quả với tôi sau khi thực hiện 'Thư mục bản dựng sạch' với tùy chọn bị giữ. Cảm ơn!
Luke

1
Điều này làm việc cho tôi, cảm ơn ... Tôi không biết giữ tùy chọn làm một loại sạch sẽ khác.
OscarTheGrouch

Điều này chỉ hoạt động để xây dựng trong Xcode. Nếu bạn đang xây dựng từ dòng lệnh, hãy xem bài đăng của Rodrigo Lima bên dưới.
Jeff

21

Đi tới dự án của bạn Build Settings, tìm một cài đặt có tên Precompiled Headers Cache Path, sau đó xóa thư mục đó


Chỉ hành động này đã giúp tôi giải quyết vấn đề đã đề cập. Cảm ơn!
Orange

13

Thực hiện dọn dẹp bằng cách sử dụng command+shift+kvà chạy lại dự án hiện có.

nhập mô tả hình ảnh ở đây


9

Từ ghi chú phát hành XCode 4.6.2

Các vấn đề đã biết

Xây dựng

Khi xây dựng một sản phẩm được xây dựng trước đó bằng Xcode 4.6.1 hoặc phiên bản cũ hơn, quá trình xây dựng không thành công với lỗi tương tự như sau:

Tệp PCH được tạo từ một nhánh khác ((clang-425.0.27)) với trình biên dịch ((clang-425.0.28))

Để giải quyết vấn đề này, hãy chọn Sản phẩm> Làm sạch trước khi xây dựng sản phẩm của bạn. 13663167

Thực hiện Sản phẩm> Công việc sạch sẽ


1
Vâng, đó là một vấn đề với các phiên bản trước nhưng nó được thừa nhận là đáng được đề cập tại các ghi chú phát hành chỉ bây giờ. Ngoài ra, họ không đưa ra giải pháp nào cho những người không sử dụng Xcode làm IDE, @sycx thì có (xóa Đường dẫn bộ nhớ cache tiêu đề được biên dịch trước).
A-Live

9

Tôi đã thử tất cả các cách trên và nó hoạt động tốt từ Xcode UI, nhưng nó vẫn không thành công đối với tôi khi tôi chạy xcodebuild từ dòng lệnh .

Đó là do sự phụ thuộc vào các thư viện khác và các tiêu đề trước khi biên dịch của chúng. Khi chạy từ dòng lệnh, có vẻ như xcodebuild store / đọc các tiêu đề được biên dịch trước từ đây:

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

Sau khi dọn dẹp thư mục đó, xcodebuild đã thành công.


2
Vị trí thư mục này sẽ khác nhau đối với mọi người, vì vậy một cách nhanh chóng để xác định đúng thư mục cần dọn dẹp là sử dụng find + grep ... sudo find / var / folder | grep SharedPrecompiled
Greg Combs

1
Tôi đã từng gặp vấn đề tương tự. Chạy từ dòng lệnh không thành công, mặc dù tôi có thể xây dựng từ bên trong Xcode. Tôi đã chạy xong: sudo find /private/var/folders -name SharedPrecompiledHeadersvà sau đó làm trống các thư mục kết quả. Làm việc như người ở.
Jeff

Nếu tôi có thể cung cấp cho tôi một ủng hộ bổ sung này. Chắc chắn việc dọn dẹp dường như không hoạt động với tôi khi xây dựng từ dòng lệnh. Tôi mong đợi điều đó sẽ xảy ra, nhưng biết nơi để tìm các tiêu đề được biên dịch trước là rất hữu ích.
John Bowers

4

Đặc biệt nếu bạn xây dựng từ dòng lệnh hoặc bạn có một tập lệnh xây dựng, việc làm sạch mục tiêu xcode là không đủ. Bạn phải xóa thư mục này.

Vị trí chính xác của tiêu đề biên dịch trước có thể được tìm thấy trong dự án, một phần của đường dẫn thư mục là ngẫu nhiên (tôi đoán), đặc biệt là sau /var/folders/xx..xxx/C.

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

Chạy Terminal và đi đến thư mục này và xóa (sử dụng lệnh),

#rm -fr SharedPrecompiledHeaders

nhập mô tả hình ảnh ở đây


Câu trả lời chính xác! Nhưng tôi không có thư mục nào như vậy tại vị trí đó (ngay cả tại dấu nhắc Terminal sử dụng ls -lAhF). Tuy nhiên, đóng Xcode và sau đó xóa thư mục com.apple.Xcode.501 hoạt động tốt.
RedYeti

Vị trí chính xác của tiêu đề biên dịch trước có thể được tìm thấy trong dự án, một phần của đường dẫn thư mục là ngẫu nhiên (tôi đoán), đặc biệt là sau /var/folders/xx..xxx/C.
karim

Xin lỗi - tôi không rõ. Có, đường dẫn sẽ luôn thay đổi bên dưới / var / folder / * nhưng thư mục không có ở đó là "SharedPrecompiledHeaders" - điều này làm tôi ngạc nhiên. Nhưng việc xóa thư mục mẹ mà tôi đã đề cập sẽ hoạt động mà không có vấn đề gì.
RedYeti

4

Tôi đã phải xóa thủ công ~/Library/Developer/Xcode/DerivedData/ Clean không hoạt động với tôi.


0

sử dụng "command + shift + k" để làm sạch dự án của bạn, sau đó bạn sẽ ổn.


0

Làm sạch dự án của bạn và chạy

Sản phẩm-> Làm sạch Sau đó, Chạy.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.