2012-01-03 15 views
6

में क्रॉस-प्रोजेक्ट स्रोत कोड संदर्भ मुझे पता है कि आप अन्य परियोजनाओं में ढांचे/स्थैतिक lib निर्माण लक्ष्यों को संदर्भित कर सकते हैं, लेकिन यदि आप जिस परियोजना को संदर्भित करना चाहते हैं, उसके पास ढांचा/स्थिर lib लक्ष्य नहीं है, क्या आप सीधे किसी अन्य एक्सकोड प्रोजेक्ट से स्रोत कोड का संदर्भ ले सकते हैं? मैंने उप-प्रोजेक्ट और एक्सकोड 4 वर्कस्पेस दोनों का उपयोग करने के लिए ऐसा करने की कोशिश नहीं की। हेडर खोज पथ को समायोजित करने के बाद, सभी # आयात विवरण सही तरीके से काम करते हैं, लेकिन मुझे अभी भी गंदा कंपाइलर त्रुटि दोहराने वाले प्रतीकों को नहीं मिला है।एक्सकोड 4

setenv MACOSX_DEPLOYMENT_TARGET 10.7 
/Developer/usr/bin/clang -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -L/Users/Tony/Library/Developer/Xcode/DerivedData/-bewprsseyzwgmsdpwvjfuzjiilap/Build/Products/Debug -F/Users/Tony/Library/Developer/Xcode/DerivedData/-bewprsseyzwgmsdpwvjfuzjiilap/Build/Products/Debug -filelist /Users/Tony/Library/Developer/Xcode/DerivedData/-bewprsseyzwgmsdpwvjfuzjiilap/Build/Intermediates/.build/Debug/.build/Objects-normal/x86_64/.LinkFileList -mmacosx-version-min=10.7 -fobjc-arc -framework Cocoa -o /Users/Tony/Library/Developer/Xcode/DerivedData/-bewprsseyzwgmsdpwvjfuzjiilap/Build/Products/Debug/.app/Contents/MacOS/ 

Undefined symbols for architecture x86_64: 
    "_OBJC_CLASS_$_MagicalRecordHelpers", referenced from: 
     objc-class-ref in AppDelegate.o 
    "_OBJC_CLASS_$_MRCoreDataAction", referenced from: 
     objc-class-ref in ItemsArrayController.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

इसके अलावा, इस नए एक्सकोड 4 वर्कस्पेस के साथ क्या सौदा है? और यह उप-परियोजनाओं से बिल्कुल अलग कैसे है? केवल एक चीज मैं मिल सकता है कि वे नेत्रहीन अलग लग रहा है ...

कार्यस्थान

enter image description here

उप-projct

enter image description here

उत्तर

6

पहले का जवाब प्रश्न स्पष्ट रूप से है "कोई एक्सकोड किसी अन्य प्रोजेक्ट में स्रोत फ़ाइलों का संदर्भ नहीं दे सकता"। एक स्रोत फ़ाइल (.m फाइलें) संकलित करने के लिए। एक्सकोड परियोजना को उनके लिए सीधे संदर्भ रखना चाहिए। आप लक्ष्य सेटिंग -> चरणों का निर्माण -> संकलित संसाधनों पर जा सकते हैं यह देखने के लिए कि क्या संकलित किया जाएगा। ध्यान दें कि जब तक कि परियोजना सीधे परियोजना में नहीं जोड़ा जाता है, वे संकलित किए जाने वाले संसाधनों के तहत दिखाई नहीं देंगे। हालांकि प्रमुख परियोजनाओं में हेडर को संवाद किया जा सकता है।

संपादित

और मुझे लगता है दूसरा सवाल का जवाब है कि जबकि Xcode 3 निर्भरता हमेशा स्पष्ट प्रबंधन, Xcode 4 कार्यक्षेत्र इतने लंबे समय के रूप में वे सभी कर रहे हैं, की अनुमति देने के लक्ष्य निर्भरता परोक्ष प्रबंधित करने की आवश्यकता है एक ही कार्यक्षेत्र। निर्भरता निर्दिष्ट करने के लिए आवश्यक सभी को उस अन्य प्रोजेक्ट का उत्पाद जोड़ना है जिसे आप सारांश पृष्ठ में एक लिंक की गई लाइब्रेरी के रूप में संदर्भित करना चाहते हैं। इन निष्कर्षों में बहुत अधिक समय लगेगा .. (एक पूर्ण उत्पादक कार्यदिवस), इस पर दस्तावेज निश्चित रूप से सुधार किया जा सकता है!

+3

और आपने अपनी लिंकर समस्या को कैसे हल किया? – Stephan