2012-01-09 17 views
7

Tôi đang xây dựng một ứng dụng iOS 5 với ARC bằng cách sử dụng tiếng kêu trên Xcode 4.2/Lion. Thực hành tốt cho tôi là cố gắng loại bỏ càng nhiều cảnh báo càng tốt nhưng tôi đã thua trong cảnh này. Ứng dụng này có khá một vài lớp học, nhưng một số giới hạn các tập tin tiêu đề của họ (8 hoặc 9) đưa ra cảnh báo mối liên kết như thế này:Xcode/clang: Tại sao một số, không phải tất cả, tiêu đề của tôi cho "cảnh báo: không có quy tắc xử lý tệp xxx cho kiến ​​trúc arm7"

warning: no rule to process file '$(PROJECT_DIR)/TKMyClass.h' of type sourcecode.objj.h for architecture arm7` 

Tôi không thấy bất kỳ sự tương đồng đáng kể qua những tiêu đề: một cặp vợ chồng là thứ 3 mã OSS của bên; phần còn lại là của riêng tôi. Một là một tệp tiêu đề đơn giản-C (không có tương ứng .c) không chứa gì ngoài các hằng số, #defines và enums; một cặp vợ chồng là UIViewUIViewController các lớp con được tạo bằng các mẫu của Xcode; phần còn lại là các lớp Obj-C bình thường, một số trong đó được kế thừa từ NSObject và một số không. Tất cả (các lớp học của tôi) đã được tạo ra từ đầu trong dự án vào các thời điểm khác nhau. Cả hai lớp cũ hơn và mới hơn không đưa ra cảnh báo.

Dự án của tôi sử dụng kết hợp các lớp C++, Objective-C++ và Objective C. Các lớp tạo cảnh báo ở đây chủ yếu là Objective C (các triển khai của chúng nằm trong các tệp .m) nhưng hai lớp bên thứ ba được thực hiện trong Objective C++ (.mm).

Dự án khác xây dựng tốt và chạy trong trình mô phỏng và trên iDevices.

Để xấu hổ, tôi không quen thuộc với các trang cài đặt dự án trong Xcode. Tôi hy vọng giải pháp được chứa trong đó một nơi nào đó nhưng tôi không chắc chắn nơi để bắt đầu mà không vi phạm mọi thứ.

Trả lời

20

Điều đó có nghĩa là bạn đã vô tình thêm các tệp tiêu đề cần được biên soạn. Bạn cần phải đi vào các dự án của bạn Build Phases và xóa tất cả các tệp tiêu đề khỏi phần Compile Sources.

+0

Cảm ơn, điều đó đã xảy ra. –

+0

điều kỳ lạ (đối với tôi) là xcode tự thêm chúng khi thêm tệp mới vào dự án thông qua trình hướng dẫn. – glasz

2

Kiểm tra kiến ​​trúc của bạn (Dự án và mục tiêu): Tiêu chuẩn (armv7) - $ (ARCHS_STANDARD_32_BIT) và chuyển tới Xây dựng Pharse (Biên dịch nguồn) và má không được có bất kỳ tệp .h nào được thêm vào đó.

Các vấn đề liên quan