2012-01-09 5 views
7

मैं एक्सकोड 4.2/शेर पर क्लैंग का उपयोग करके एआरसी के साथ आईओएस 5 ऐप का निर्माण कर रहा हूं। मेरे लिए अच्छा अभ्यास जितना संभव हो उतना चेतावनियों से छुटकारा पाने का प्रयास करना है, लेकिन मैं इस पर खो गया हूं। एप्लिकेशन काफी कुछ वर्ग हैं, लेकिन उनके हेडर फाइल की एक सीमित संख्या (8 या 9) इस तरह लिंकर चेतावनी दे:एक्सकोड/क्लैंग: मेरे हेडर के कुछ, सब कुछ क्यों नहीं करते हैं "चेतावनी: आर्किटेक्चर आर्म 7 के लिए फ़ाइल xxx को संसाधित करने का कोई नियम नहीं है"

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

मैं इन हेडर भर में किसी भी महत्वपूर्ण समानताएं नहीं दिख रहा है: एक जोड़े को 3 हैं पार्टी ओएसएस कोड; बाकी सब मेरे हैं। एक सादा-सी हेडर फ़ाइल है (बिना संगत .c के साथ) जिसमें स्थिरांक, #defines और enums के अलावा कुछ भी नहीं है; एक जोड़े UIView और UIViewController एक्सक्लूस एक्सकोड के टेम्पलेट्स के साथ बनाए गए हैं; बाकी सामान्य ओब्जे-सी कक्षाएं हैं, जिनमें से कुछ NSObject से उत्तराधिकारी हैं और इनमें से कुछ नहीं हैं। परियोजना के भीतर कई बार (मेरी कक्षाओं) स्क्रैच से बनाए गए थे। पुराने और नए दोनों वर्ग कोई चेतावनी नहीं देते हैं।

मेरी परियोजना सी ++, उद्देश्य-सी ++ और उद्देश्य सी कक्षाओं के मिश्रण का उपयोग करती है। यहां चेतावनी उत्पन्न करने वाले वर्ग अधिकतर उद्देश्य सी हैं (उनके कार्यान्वयन। एम फाइलों में हैं) लेकिन दो तृतीय पक्ष वर्ग उद्देश्य सी ++ (। मिमी) में लागू किए गए हैं।

प्रोजेक्ट अन्यथा ठीक बनाता है और सिम्युलेटर और iDevices पर चलता है।

मेरी शर्मिंदगी में मैं एक्सकोड में प्रोजेक्ट सेटिंग्स पृष्ठों से विशेष रूप से परिचित नहीं हूं। मुझे उम्मीद है कि समाधान कहीं भी निहित है लेकिन मुझे यकीन नहीं है कि चीजों को तोड़ने के बिना कहां से शुरू करना है।

उत्तर

20

इसका मतलब है कि आपने गलती से हेडर फाइलों को संकलित करने के लिए जोड़ा है। आपको अपनी परियोजनाओं में Build Phases में जाना होगा और Compile Sources अनुभाग से सभी शीर्षलेख फ़ाइलों को हटा देना होगा।

+0

धन्यवाद, ऐसा हुआ। –

+0

अजीब चीज़ (मेरे लिए) यह है कि विज़ार्ड के माध्यम से प्रोजेक्ट में एक नई फ़ाइल जोड़ते समय एक्सकोड स्वयं उन्हें जोड़ता है। – glasz

2

अपने आर्किटेक्चर (परियोजना और लक्ष्य) की जांच करें: मानक (armv7) - $ (ARCHS_STANDARD_32_BIT) और बिल्ड फ़र्श (संकलन स्रोत) पर जाएं और गाल वहां कोई भी फ़ाइल नहीं है।

संबंधित मुद्दे