2011-07-01 17 views
5

में plcrashreporter संकलित नहीं कर सकता है मैं डिवाइस के लिए संकलन करते समय plcrashreporter प्रोजेक्ट पेज पर प्रदान किए गए प्रीबिल्ट फ्रेमवर्क का उपयोग कर सकता हूं, लेकिन सिम्युलेटर के लिए नहीं। मेरे पास एक ही problem described here है।एक्सकोड 4


मुझे लगता है पहले से बनाए गए ढांचे सिम्युलेटर की वास्तुकला का समर्थन नहीं करता, तो मैं plcrashreporter स्रोत बाहर डाउनलोड किया। मैंने एक्सकोड प्रोजेक्ट खोला और CrashReporter-iOS-Simulator > iPhone 4.3 Simulator लक्ष्य का चयन किया। जब मैं परियोजना बनाने की कोशिश, मैं इस त्रुटि मिलती है:

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

जब मैं अन्य लक्ष्यों के सबसे (जैसे डिवाइस के लिए के रूप में) बनाने की कोशिश मैं एक ही त्रुटि मिलती है।


मेरा अगला चरण मेरी परियोजना में स्रोत फ़ाइलों को जोड़ने का प्रयास करना था। अब मुझे उपरोक्त समस्या नहीं है; हालांकि, मैं इस त्रुटि जब मैं संकलन करने की कोशिश मिलती है:

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

crash_report.pb-c.h फ़ाइल जो त्रुटि संदेश में बताया गया है बस मौजूद नहीं है; मैंने plcrashreporter स्रोत पेड़ और इंटरनेट की खोज की है। इसलिए, मुझे यह मानना ​​है कि यह फ़ाइल किसी भी तरह से उत्पन्न की जानी चाहिए, लेकिन मैं यह नहीं समझ सकता कि कैसे।

(PLCrashReport.m में लाइन बाहर टिप्पणी करते हैं, जिस पर crash_report.pb-c.h कई अन्य संकलन त्रुटियों में परिणाम शामिल है।)

उत्तर

5

आपको लगता है कि में सही कर रहे हैं फ़ाइल सामान्य रूप से मौजूद नहीं है, और न ही crash_report.pb-c.c मौजूद है, जो हो जाएगा इस के बाद आपकी अगली त्रुटि।

crash_report.pb.h और crash_report.pb.c फ़ाइलों को निर्माण नियम के माध्यम से संकलित समय पर उत्पन्न किया जाता है। उन्हें बनाने के लिए आपको अपनी निर्माण प्रक्रिया में कस्टम स्क्रिप्ट जोड़ने की आवश्यकता है।

सबसे पहले, सुनिश्चित करें कि आपके प्रोजेक्ट के plcrashreporter फ़ोल्डर (plcrashreporter-1.0/Dependencies/protobuf-2.0.3/bin/protoc-c) में प्रोटोक-सी है। उन्होंने इसे गहरा दफनाया। यही आपकी स्क्रिप्ट चल रही है।

फिर अपनी crash_report.proto फ़ाइल ढूंढें। यह मुख्य इनपुट है कि protoc-c आपकी अनुपलब्ध फ़ाइलों को बनाने के लिए उपयोग किया जाएगा। आप इस निर्देशिका को ले सकते हैं और इसे मैन्युअल रूप से अपनी स्क्रिप्ट में डाल सकते हैं, या आप प्रत्येक *.proto फ़ाइल पर स्क्रिप्ट चलाने के लिए नियम बना सकते हैं। मैं बाद वाला करता हूँ।

फिर अपने निर्माण नियमों को संपादित कि झंडा --c_out="${DERIVED_FILES_DIR}" साथ protoc-c और दो आदानों के रूप में अपने crash_report.proto फ़ाइल चलाता है एक स्क्रिप्ट, इस वसीयत उत्पादन crash_report.pb-c.h और crash_report.pb-c.c जहाँ आपके crash_report.proto फ़ाइल है उसी निर्देशिका में है, जो पहले से ही होना चाहिए शामिल करने के लिए अपनी परियोजना में सुलभ हो।

एक्सकोड 4 (और ऊपर) में निर्माण नियम आपके प्रोजेक्ट के लक्ष्य के निर्माण नियम टैब के अंतर्गत हैं। आप अपने सभी अन्य निर्माण नियमों से पहले एक बिल्ड नियम जोड़ते हैं। यहाँ मेरा Xcode में कैसा दिखता है:

Here's what mine looks like in Xcode.

आप शायद निर्देशिका के साथ बेला करना होगा