2010-11-11 20 views
7

मुझे libobjc2 के अस्तित्व के बारे में पता है, और मैं इकट्ठा करता हूं कि मुझे जीसीसी की बजाय क्लैंग का उपयोग करने की आवश्यकता होगी, लेकिन मुझे संकलन प्रक्रिया के बारे में क्या कुछ अलग-अलग निर्देश नहीं मिल रहे हैं।जीएनयूस्टेप के साथ ओब्जे-सी 2.0 का उपयोग कैसे करता है?

किसी को भी, प्राप्त करने को विन्यस्त, संकलन, और Ubuntu में ऑब्जेक्टिव-सी 2.0 के साथ GNUstep के प्रयोग पर स्पष्ट, कदम दर कदम निर्देश दे सकते हैं?

+0

मुझे अभी भी इसका कोई जवाब नहीं मिला है, लेकिन इस बीच, मैंने कोकोट्रॉन में स्विच किया है, और ओब्जे-सी 2.0 वहां बहुत बढ़िया काम करता है (एनएसएक्सएमएल दस्तावेज़ के साथ और कुछ अन्य चीजें जो मुझे जीएनयूस्टेप में कमी आई)। बेशक, इसे मैक से क्रॉस-कंपाइलिंग की आवश्यकता होती है।:( – andyvn22

उत्तर

-1

GNUstep Wiki के अनुसार, आपको -fblocks और -fobjc-nonfragile-abi के साथ अपने कोड को संकलित करने की आवश्यकता है। फिर आप अपने कोड में भाषा सुविधाओं का उपयोग करें।

+3

मेरा मानना ​​है कि प्रक्रिया उससे कहीं अधिक जटिल है। Google सुझाव देता है कि जीएनयूस्टेप मेक और जीएनयूस्टेप बेस को libobjc2 के साथ दिमाग में दोबारा तैयार किया जाना चाहिए। – andyvn22

2

चूंकि GNUStep ObjC2 FAQ पहले से ही संदर्भित किया गया है, मुझे लगता है कि आपने एक नज़र डाली है। मैं, इस का कहना चाहते हैं लेकिन:

और अधिक उन्नत सुविधाओं, वर्तमान में केवल समर्थित अगर आप बजना साथ संकलन के लिए, आप GNUstep क्रम की आवश्यकता होगी। वर्तमान में इसे उत्पादन तैयार नहीं माना जाता है। इसे जीसीसी रनटाइम के लिए ड्रॉप-इन प्रतिस्थापन के रूप में काम करना चाहिए, लेकिन कुछ उन्नत सुविधाओं का परीक्षण नहीं किया जाता है।

The FAQ भी बाहर कॉल निम्नलिखित:

आप जीसीसी के नवीनतम संस्करण उपयोग करते रहे हैं, तो आपके कोड को संकलित करने के तो आप ऑब्जेक्टिव-सी क्रम पुस्तकालय की एक प्रति है कि आपके संकलक के साथ आया था होना चाहिए ।

यदि आप -fobjc-nonfragile-abi ध्वज के साथ संकलित करते हैं तो आप नए एबीआई का उपयोग करेंगे। यह केवल जीएनयूस्टेप रनटाइम के साथ समर्थित है। यह कहते हैं:

  • संपत्ति आत्मनिरीक्षण
  • आत्मनिरीक्षण वैकल्पिक प्रोटोकॉल तरीकों पर
  • गैर नाजुक उदाहरण चर
  • अग्रेषण प्रॉक्सी समर्थन

तो, आप बड़े के लिए देख रहे हैं जीसीसी, this tutorial के माध्यम से कार्यक्षमता अच्छी तरह से काम करेगी, जैसा कि this one. होगा आपने स्पष्ट रूप से यह कहा है कि आप देख रहे हैं क्लैंग द्वारा प्रदान की गई कार्यक्षमता के साथ ऐसा करने के लिए (libobjc2 के माध्यम से), जिसका दस्तावेज का अपना बिस्तर है।

Obtaining a release of Clang and getting set up काफी कट और सूखा लगता है। LLVM Getting Started दस्तावेज़ असाधारण रूप से मजबूत है (पूर्ण प्रलेखन संग्रह here), जो बैकएंड सेट अप और उचित रूप से संकलित करने में अंतर्दृष्टि प्रदान करना चाहिए। अपेक्षित निर्माण प्रक्रिया में कुछ अतिरिक्त अंतर्दृष्टि here मिल सकती है।

हालांकि, क्लैंग में एक उद्देश्य-सी अनुप्रयोग संकलित करना इस लेखन के समय बेहद कम दस्तावेज और अनचाहे लगता है। जैसे-जैसे सुविधाएं उपलब्ध हो जाती हैं और कोडबेस स्थिर हो जाता है, मुझे लगता है कि अधिक उपयोगकर्ता दस्तावेज लाइव होंगे।

+0

आपके उत्तर के लिए धन्यवाद। अब मैंने सफलतापूर्वक libobjc2 संकलित किया है (मुझे क्लैंग को संकलित करना था libobjc2 को संकलित करने के लिए स्रोत प्राप्त करने के लिए स्रोत, अजीब तरह से), और मैंने gnustep-base संकलित करने और libobjc2 के साथ लिंक करने में भी कामयाब रहा है। दुर्भाग्य से, NSObject का कोई भी उपयोग (जो वास्तविक दुर्लभ है;)) एक segfault का कारण बनता है। मुझे लगता है कि शायद जीएनयूस्टेप सामान्य लोगों के लिए अभी तक उपयोग करने के लिए तैयार नहीं है (हालांकि शब्द पूरी ईटोइल परियोजना देव टीम libobjc2 सफलतापूर्वक उपयोग कर रही है; grr)। – andyvn22

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

  • कोई संबंधित समस्या नहीं^_^