2013-03-11 10 views
34

$(inherited) खोज पथ सेटिंग क्या है?

मैंने आईपैड के लिए ओपनएसएसएल के संबंध में हेडर और लाइब्रेरी खोज पथ सेटिंग्स को संशोधित किया है और इस मुद्दे को दिए गए पथ के रिकर्सिव विकल्प के साथ मुख्य अपराधी था।

जब मैंने अपनी खोज पथ को पहले निर्देशिका में देखने के लिए पुन: व्यवस्थित किया और फिर $(inherited) में, आईपैड बिल्ड काम कर रहे थे।

उत्तर

31

मैं भी एक दस्तावेज की तलाश में हूं। लेकिन मैंने अनुभव किया, कि $(inherited) का उपयोग परियोजना स्तर से लक्ष्य स्तर तक निर्माण सेटिंग्स के उत्तराधिकारी के लिए किया जा सकता है। जब आप प्रोजेक्ट स्तर पर लाइब्रेरी या हेडर सर्च पथ को परिभाषित करते हैं तो आप प्रोजेक्ट लक्ष्यों के खोज पथों में इन खोज पथों का उपयोग करने के लिए लक्ष्य निर्माण सेटिंग्स में $(inherited) का उपयोग कर सकते हैं।

+0

में पाया मुझे लगता है कि यह वास्तव में $ (विरासत में मिला है), नहीं $ (इनहेरिट करती हैं) है। – Dave

4

परिशिष्ट: जब आप लक्ष्य सदस्यता दाएँ हाथ फलक में क्लिक करके एक लक्ष्य के लिए एक पुस्तकालय जोड़ने $(inherited) साथ बिल्ड सेटिंग्स> लाइब्रेरी खोज पथ स्वचालित रूप से भर जाता है। यह अन्यथा नहीं होता है।

+0

मुझे यह मामला नहीं मिला, कम से कम एक्सकोड 7 के रूप में नहीं। मेरे पास दोनों परियोजनाओं में $ (विरासत) सेट है, और लक्ष्य (उन्हें व्यक्तिगत रूप से भी कोशिश की गई), फिर मेरे विशिष्ट में एक कस्टम फ्रेमवर्क जोड़ा लक्ष्य लेकिन यह खोज पथ में जोड़ा नहीं गया था। क्या मुझे एक कदम याद आ रहा है? – MarqueIV

+1

एक्सकोड अपडेट के साथ रखना मुश्किल है ... यह बदल दिया गया हो सकता है। –

21

आप लक्ष्य साधन में

Alt text

आप सही से inherited के प्रवाह को देख सकते हैं

Resolved <- Target <- xcconfig <- Project <- iOS Default 
inherited में

तो छोड़ दिया करने के लिए सेटिंग बिल्ड लक्षित करें, और स्तर दृश्य पर स्विच करने जाते हैं कि लक्ष्य xcconfig और परियोजना

+0

कहां/xcconfig क्या है? – Ricardo

1

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

// Variable set in the project file, previous level 
OTHER_LDFLAGS = -ObjC 

// lib.xcconfig 
OTHER_LDFLAGS = -framework Security 

^जब इस के साथ संकलन, OTHER_LDFLAGS -ObjC के पिछले मूल्य नया मान -framework Security द्वारा ओवरराइड किया जा रहा है।

का उदाहरण प्रोजेक्ट या लक्ष्य स्तर पर सेट चर वैरिएबल का निर्माण xcconfig फ़ाइल में उस चर के पिछले मान को जोड़कर सेट करें। $(inherited) को एक विशेष चर के रूप में सोचें जिसका उपयोग चर के मौजूदा मान को प्राप्त करने के लिए किया जा सकता है ताकि समान चर के लिए असाइनमेंट विनाशकारी न हो।

// Variable set in the project file, previous level 
OTHER_LDFLAGS = -ObjC 

// lib.xcconfig 
OTHER_LDFLAGS = $(inherited) -framework Security 

^जब इस के साथ संकलन, OTHER_LDFLAGS का मूल्य -ObjC -framework Security होने जा रहा है।

उदाहरण https://pewpewthespells.com/blog/xcconfig_guide.html

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