2015-11-13 20 views
15

मैं अपनी परियोजना के लिए एक ढांचा बनाने की कोशिश कर रहा हूं। मेरे ढांचे में मैंने अपनी शीर्षलेख फ़ाइलों का पथ लक्ष्य> सेटिंग> हेडर-खोज पथ पर जोड़ा। उसके बाद मैंने द्वारा अपनी परियोजना में इस ढांचे को जोड़ा> चरणों का निर्माण> पुस्तकालयों के साथ लिंक बाइनरीएक्सकोड हेडर फ़ाइल नहीं ढूंढ सकता

जब मैं अपने ढांचे में शामिल हेडर फ़ाइल आयात करना चाहता हूं, तो मुझे प्राप्त होता है .h फ़ाइल त्रुटि नहीं मिली। क्या मैं संभव करने की कोशिश कर रहा हूं? या क्या मुझे कुछ याद आ रहा है?

मैंने इस तरह के ढांचे को बनाया;

आईओएस के रूप में नई परियोजना खोला> फ्रेमवर्क & लाइब्रेरी> कोको टच फ्रेमवर्क मैंने कोई कक्षा नहीं जोड़ा, मैंने अभी हेडर खोज पथ और लाइब्रेरी खोज पथ और लिंकर झंडे जोड़े हैं। मुझे नहीं लगता कि मैंने इस हिस्से में गलती की है क्योंकि हम इसे हर परियोजना में करते हैं लेकिन पहली बार मैं इसे ढांचे के लिए कर रहा हूं। तब मैंने दौड़ दबाई और उत्पाद से अपना ढांचा प्राप्त किया।

मैंने अपना प्रोजेक्ट खोला और फ्रेमवर्क बनाएं> पुस्तकालयों के साथ लिंक बाइनरी जोड़ा। मैं फ्रेमवर्क की हेडर फ़ाइल आयात करने में सक्षम हूं जैसे #import <myframework/framework.h> इसके बाद मैंने फ्रेमवर्क को सामान्य> एम्बेडेड बैनरीज भी जोड़ा। सबकुछ सामान्य दिखता है लेकिन मैं अपने प्रोजेक्ट में हेडर जोड़ नहीं सकता जो मैंने हेडर सर्च पथ के साथ अपने ढांचे में शामिल किया था। मुझे हेडर सर्च पथ का उपयोग करना है क्योंकि बहुत सारे हेडर हैं, मैं उन सभी को अपने एक्सकोड में नहीं जोड़ सकता।

+1

यदि हेडर ढांचे के भीतर है तो आपको हेडर खोज पथ सेट करने की आवश्यकता नहीं है, है ना? आपको '# import' कथन में शीर्षलेख को सही तरीके से नाम देना होगा, हालांकि (' # आयात <फ्रेमवर्क/फ्रेमवर्क.h> ')। – trojanfoe

+0

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

+1

क्या आप अधिक विस्तार से वर्णन कर सकते हैं कि आपने अपना ढांचा कैसे बनाया है और आपने इसे वास्तव में कैसे आयात किया है? – arturdev

उत्तर

18

सुनिश्चित करें कि आप सभी सार्वजनिक हैडर लोक धारा बाकी खींचें में दिखाई गई है और सार्वजनिक enter image description here

+0

एक्सकोड पर कोई हेडर फ़ाइल नहीं, वे अलग-अलग फ़ोल्डर में रहते हैं और मैं केवल हेडर खोज पथ से उनके पथ दिखाता हूं। कई हेडर फाइलें हैं और मैं उन सभी को एक्सकोड पर खींच और छोड़ नहीं सकता हूं। –

+1

आपको फ्रेमवर्क प्रोजेक्ट के सार्वजनिक अनुभाग में सभी हेडर फ़ाइल खींचनी है जिसके बाद आपको बस अपना ढांचा –

+0

हज़ह शामिल करना होगा! बहुत आसन! धन्यवाद! –

2

सब कुछ ज फ़ाइल ड्रॉप सामान्य लग रही है लेकिन मैं अपने परियोजना जो मैं शीर्ष लेख के साथ अपने ढांचे को शामिल करने के लिए शीर्ष लेख नहीं जोड़ सकते खोज पथ

ऐसा लगता है जैसे कि आप सभी हेडर पथ आपके शीर्षक खोज पथ द्वारा निर्दिष्ट में पाया जा सकता है कि अपने ढांचे का हिस्सा बन जाएगा उम्मीद कर रहे हैं, ताकि आपके खोज पथ में SomeHeader.h नाम के एक शीर्ष लेख हो, तो, इसे आपके ढांचे में बनाया जाएगा और आप इसे क्लाइंट प्रोजेक्ट्स में आयात करने में सक्षम होंगे जैसे:

#import <MyFramework/SomeHeader.h> 

लेकिन ऐसा नहीं है। यदि आप अपने ढांचे को SomeHeader.h प्रदान करना चाहते हैं, तो आपको उस फ़ाइल को प्रोजेक्ट में जोड़ना होगा और, जैसा कि मेघ धामेलिया पहले से ही इंगित करता है, आपको हेडर बिल्ड चरण के सार्वजनिक शीर्षलेख भाग में SomeHeader.h निर्दिष्ट करना होगा। यह एक्सकोड को हेडर फ़ाइल को ढांचे में कॉपी करेगा ताकि ढांचे के ग्राहक हेडर फ़ाइल आयात कर सकें। यह स्पष्ट नहीं है कि आप वास्तव में क्या चाहते हैं, हालांकि ... टिप्पणियों में आपने लिखा:

किसी अन्य पथ में बहुत सारे शीर्षलेख हैं। मुझे दुर्भाग्य से हेडर खोज पथ का उपयोग करना होगा। कंपनी के नियम की तरह।

तो ऐसा लगता है कि आपकी कंपनी की सभी परियोजनाएं एक ही शीर्षलेख खोज पथ निर्दिष्ट करती हैं ताकि उनके पास इन शीर्षलेख फ़ाइलों तक पहुंच हो। यदि यह सच है, तो परियोजनाओं के लिए आपके ढांचे से #import की आवश्यकता नहीं है, लेकिन उस स्थिति में यह स्पष्ट नहीं है कि वास्तविक समस्या क्या है। या, शायद आप ढांचा तैयार कर रहे हैं ताकि ग्राहक परियोजनाएं शीर्षलेख खोज पथ का संदर्भ देने के बजाय हेडर को आपके ढांचे से प्राप्त कर सकें। उस स्थिति में, आपको उन शीर्षकों को प्रोजेक्ट में जोड़ना होगा और ऊपर वर्णित अनुसार उन्हें निर्दिष्ट करना होगा।

+0

कालेब, हाँ हमारे पास कई शीर्षलेख और libs हैं और जब हम उन्हें ग्राहकों के साथ साझा करते हैं, तो वे भ्रमित होते हैं और आमतौर पर हेडर खोज पथ या लिंकर झंडे जोड़ना भूल जाते हैं। इसलिए मैं ढांचा बनाना चाहता हूं जिसमें यह सब है और क्लाइंट के साथ केवल ढांचा साझा करें। मैं सीखने की कोशिश कर रहा हूं कि यह संभव है या नहीं। फिर हां हमारे सभी शीर्षलेख एक ही निर्दिष्ट पथ में हैं। हमें वहां से हेडर सर्च पथ के साथ उनका उपयोग करना होगा। आखिर में मुझे यह मिला कि हेडर खोज पथ से यह संभव नहीं है। –

+0

@ युसेलबैरम आप हेडर सर्च पथ का उपयोग कर सकते हैं यदि आपको केवल उन * हेडर को * अपनी * स्रोत फ़ाइलों में आयात करने की आवश्यकता है, ताकि संकलक में सभी परिभाषाएं हों। इसे संकलित करने की आवश्यकता है। चूंकि आप वास्तव में हेडर फ़ाइल को अपने ढांचे में शामिल करना चाहते हैं ताकि यह क्लाइंट प्रोजेक्ट्स के लिए '# import' पर उपलब्ध हो, हां, आपको प्रोजेक्ट में जोड़ना होगा। – Caleb

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