2009-08-18 16 views
5

मुझे एक्सकोड को किसी विशेष फ़ाइल संरचना से निपटने में समस्या हो रही है जिसका मैं उपयोग कर रहा हूं या मैं इसका उपयोग करना चाहता हूं।एक्सकोड में पथ शामिल हैं

मैं निम्नलिखित रूप में फ़ाइलों का एक सेट है ...

 

Library 
    Headers 
     Library 
     Package1 
      Header1.h 
      Header2.h 
      HeaderN.h 
     Package2 
      Header1.h 
      Header2.h 
      HeaderN.h 
     PackageN 
      Header1.h 
      Header2.h 
      HeaderN.h 
    Source 
     Package1 
     Source1.m 
     Source2.m 
     SourceN.m 
     Package2 
     Source1.m 
     Source2.m 
     SourceN.m 
     Package3 
     Source1.m 
     Source2.m 
     SourceN.m 

मॉडल मैं इस पुस्तकालय है बाहर कोड के लिए चाहते हैं ...

#import "Library/Package/Header.h" 

शामिल मैं इंगित करना चाहते हैं लाइब्रेरी/हेडर पर एक्सकोड लेकिन आंतरिक फ़ोल्डरों पर नहीं। जब मैं इस पेड़ को प्रोजेक्ट में जोड़ता हूं तो एक्सकोड में अंतर्निहित लगता है कि पेड़ में प्रत्येक नोड के पथ शामिल हैं।

परियोजना के भीतर लेकिन इस पेड़ ऐसा कर सकते हैं बाहर

क्लाइंट कोड ...

#import "Header.h" 
बजाय

...

#import "Library/Package/Header.h" 

मैं अनुमति न दें के लिए एक रास्ता खोजने के लिए नहीं कर पा रहे गैर-योग्यता फॉर्म

किसी भी मदद की सराहना की जाएगी।

धन्यवाद, -Roman

उत्तर

1

आप इस परियोजना में फाइलों में शीर्षक शामिल करते हैं तो XCode हमेशा की तरह, पथ योग्यता के बिना उन्हें मिलेगा जैसा कि आप की खोज की है। सबसे अच्छा समाधान प्रोजेक्ट से हेडर को निकालना है और अपनी प्रोजेक्ट सेटिंग्स में हेडर सर्च पथ के रूप में "लाइब्रेरी/हेडर" निर्दिष्ट करना है। हेडर आपके प्रोजेक्ट में नहीं दिखाए जाएंगे, लेकिन संकलन करते समय वे एक्सकोड द्वारा निहित रूप से नहीं पाएंगे; क्लाइंट कोड को हेडर फ़ाइल प्राप्त करने के लिए "लाइब्रेरी/हेडर" का पूरा पथ निर्दिष्ट करना होगा।

+0

मैं देखता हूं। जब मैं पुस्तकालय और ऐप को एक ही समय में लिख रहा हूं तो शर्म की बात है। मान लीजिए कि मैं इसे हमेशा अपनी परियोजना में तोड़ सकता हूं। मैंने एक ही परियोजना के भीतर लाइब्रेरी लक्ष्य बनाने की कोशिश की लेकिन यह अंतर्निहित पथ को भी नहीं बदलता है। –

+4

मैंने पाया कि आपके प्रोजेक्ट में हेडर्स को संपादन की आसानी के लिए एक तरीका है लेकिन उन्हें परियोजना द्वारा नहीं मिला है। हेडर को फ़ोल्डर संदर्भों के रूप में आयात करें (xcode में पीले रंग की बजाय नीला)। –

+0

+1 उपयोगी; धन्यवाद! – fbrereto

6

आप एक्सकोड के व्यवहार के खिलाफ दौड़ रहे हैं कि यह एक फ्लैट-हेडर्मैप बनाता है। आप बिल्ड सेटिंग जोड़कर इसे अक्षम कर सकते हैं:

HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT=NO 

आपकी प्रोजेक्ट सेटिंग्स में।

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