2011-07-01 13 views
5

Tôi có thể sử dụng khung dựng sẵn được cung cấp trên trang dự án plcrashreporter khi biên dịch cho thiết bị, nhưng không thể sử dụng cho trình mô phỏng. Tôi có cùng một problem described here.Không thể biên dịch plcrashreporter trong Xcode 4


Tôi cho rằng khung dựng sẵn không hỗ trợ kiến ​​trúc của trình mô phỏng, vì vậy tôi đã tải xuống nguồn plcrashreporter. Tôi đã mở dự án Xcode và chọn mục tiêu CrashReporter-iOS-Simulator > iPhone 4.3 Simulator. Khi tôi cố gắng xây dựng dự án, tôi nhận được lỗi này:

libtool: unknown option character `D' in: -D__IPHONE_OS_VERSION_MIN_REQUIRED=30000

Tôi gặp lỗi tương tự khi cố gắng xây dựng hầu hết các mục tiêu khác (chẳng hạn như thiết bị).


Bước tiếp theo của tôi là thử thêm các tệp nguồn vào dự án của tôi. Tôi không còn có vấn đề nói trên; Tuy nhiên, tôi nhận được lỗi này khi tôi cố gắng biên dịch:

fatal error: 'crash_report.pb-c.h' file not found [2] 
#import "crash_report.pb-c.h" 
     ^
1 error generated. 
Command clang failed with exit code 1

Các crash_report.pb-c.h tập tin được đề cập trong thông báo lỗi chỉ đơn giản là không tồn tại; Tôi đã tìm kiếm cây nguồn plcrashreporter và internet. Vì vậy, tôi phải giả định rằng tập tin này được cho là được tạo ra bằng cách nào đó, nhưng tôi không thể tìm ra cách.

(Bình luận ra các dòng trong PLCrashReport.m mà crash_report.pb-c.h được bao gồm kết quả trong rất nhiều lỗi biên dịch khác.)

Trả lời

5

Bạn là chính xác trong đó các tập tin không tồn tại bình thường, cũng không crash_report.pb-c.c tồn tại, đó sẽ là lỗi tiếp theo của bạn sau lỗi này.

Các tệp crash_report.pb.hcrash_report.pb.c được tạo tại thời điểm biên dịch thông qua quy tắc xây dựng. Bạn cần phải thêm một kịch bản tùy chỉnh vào quá trình xây dựng của bạn để tạo chúng.

Trước tiên, hãy đảm bảo bạn có protoc-c trong thư mục plcrashreporter của dự án của bạn (plcrashreporter-1.0/Dependencies/protobuf-2.0.3/bin/protoc-c). Họ chôn sâu. Đây là những gì kịch bản của bạn sẽ được chạy.

Sau đó, tìm tệp crash_report.proto của bạn. Đây là đầu vào chính mà protoc-c sẽ sử dụng để tạo các tệp bị thiếu của bạn. Bạn có thể lấy thư mục này và đặt nó theo cách thủ công vào tập lệnh của mình, HOẶC bạn có thể thực hiện quy tắc để chạy tập lệnh trên mọi tệp *.proto. Tôi làm việc sau.

Sau đó chỉnh sửa xây dựng quy tắc của bạn để bao gồm một kịch bản chạy protoc-c với cờ --c_out="${DERIVED_FILES_DIR}" và tập tin của bạn như crash_report.proto hai đầu vào, đầu ra này sẽ crash_report.pb-c.hcrash_report.pb-c.c vào cùng thư mục với tập tin nơi crash_report.proto của bạn, mà nên đã có thể truy cập được trong dự án của bạn.

Quy tắc xây dựng trong Xcode 4 (trở lên) nằm trong tab quy tắc xây dựng của mục tiêu dự án của bạn. Bạn thêm quy tắc xây dựng trước tất cả các quy tắc xây dựng khác của mình. Đây là những gì tôi trông giống như trong Xcode:

Here's what mine looks like in Xcode.

Bạn có thể sẽ phải fiddle với các thư mục