में मौजूदा (सी ++) कोडबेस को संकलित, संकलित और लिंक करने के लिए एक्सकोड प्राप्त करना मैं अपने एक्सकोड आईओएस प्रोजेक्ट में अपने मौजूदा सी ++ कोडबेस को 'आयात' करने की कोशिश कर रहा हूं।एक्सकोड 4.3 (.1)
समस्या यह है कि, xCode संकलित नहीं करेगा (और इसलिए लिंक नहीं) मेरे कोड। यह मैंने अभी तक किया है:
- फ़ाइल> "प्रोजेक्ट" में फ़ाइलें जोड़ें। मैं 'कॉपी फाइल' पर टिक नहीं लगाता क्योंकि यह एकाधिक प्लेटफ़ॉर्म के लिए साझा कोडबेस है और स्रोत कोड की कई प्रतियां एक विकल्प नहीं है।
- मैंने "शीर्षलेख खोज पथ" परियोजना सेटिंग्स के लिए उचित पथ जोड़ा है। हेडर फाइलों को शामिल करने में, मैं अपने उद्देश्य-सी ++ (। मिमी) फ़ाइल से # stuff.h "शामिल कर सकता हूं।
हालांकि, मुझे वास्तव में .cpp फ़ाइलों को संकलित करने के लिए XCode को बताने का कोई तरीका नहीं मिल रहा है?
कुछ अंक:
- मैं एक तरह से पूर्व यह संकलित करने के लिए एक पुस्तकालय में के लिए नहीं देख रहा हूँ और इस तरह
- परियोजना को जोड़ने के लिए एक मानक आईओएस ऑब्जेक्टिव-सी परियोजना है। सी ++ कोड से कहा जाता है (कि एक समस्या नहीं है)
अद्यतन
मैं लक्ष्य के "संकलित सूत्रों का कहना है" के लिए codebase निर्देशिका जोड़ दिया है। मुझे वास्तव में पॉप अप करने वाले संवाद में "अन्य जोड़ें ..." पर क्लिक करना होगा, क्योंकि मैं अपने कोडबेस के निर्देशिका संदर्भ का चयन नहीं कर सकता।
जब मैं इसे जोड़ता हूं, तो एक्सकोड मुझसे पूछता है कि क्या मैं "बाहरी निर्माण प्रणाली प्रोजेक्ट बनाना चाहता हूं"। मैं इसे छेड़छाड़ करता हूं और दो फ़ील्ड्स को डिफ़ॉल्ट मान "/ usr/bin/make" और "$ (ACTION)" के साथ छोड़ देता हूं। हालांकि, मेरे कोडबेस को निर्माण के दौरान संकलित नहीं किया जाता है। क्या मुझे अपना खुद का मेकफ़ाइल लिखना है?
अगर मैं चयन नहीं करते हैं तो एक निर्देशिका संदर्भ लक्ष्य के तहत बनाई गई है "बाहरी निर्माण प्रणाली परियोजना बनाएँ", लेकिन निर्माण के दौरान संकलित नहीं और एक चेतावनी उत्सर्जित होता है:
warning: no rule to process file '$(PROJECT_DIR)/../codebase'
of type folder for architecture i386
लक्ष्य (केवल एक ही) लक्ष्य में जोड़ें के तहत चेक किया गया है। – olafure
क्या आपके पास अपनी सीपीपी फाइलें ** संकलित स्रोत ** में सूचीबद्ध हैं? यदि आपने उन्हें जोड़ने की कोशिश नहीं की है? – sch
हम वहां जा रहे हैं :) यदि मैं एक एकल .cpp फ़ाइल जोड़ता हूं, तो इसे निर्माण में शामिल किया जाता है! हालांकि, अगर मैं पूरी निर्देशिका का चयन करता हूं (मेरा अद्यतन प्रश्न देखें), कुछ भी नहीं बनाया जाता है। मैं अपने सभी gazillion .cpp फ़ाइलों को मैन्युअल रूप से नहीं चुनूंगा (पथ शामिल होंगे गलत होगा और भविष्य में फ़ाइलों को मैन्युअल रूप से जोड़ने/निकालने के लिए एक जोड़ा नरक) – olafure