2011-09-25 20 views
5

मेरे पास ऐसी परियोजना है जो कभी-कभी विंडोज/विजुअल स्टूडियो 2010 पर विकसित होती है और कुछ सी ++ 11 फीचर्स का उपयोग करती है और मुझे मैक ओएस पर विकसित/निर्माण करने में सक्षम होना चाहिए एक्स। जब मैंने एक्सकोड के साथ प्रोजेक्ट बनाने की कोशिश की तो मुझे नई सी ++ 11 फीचर्स के आसपास बहुत सारी त्रुटियां मिलीं और जीसीसी संस्करण की जांच की ताकि यह बहुत पुराना हो (4.2)। ऐसा लगता है कि ऐप्पल डेवलपर्स को मैक ओएस के किसी भी अन्य संस्करण पर एक्सकोड 4+ डाउनलोड करने की इजाजत देने से इंकार कर शेर को अनावश्यक अपग्रेड का भुगतान करने की कोशिश कर रहा है, इस प्रकार मुझे एक्सकोड 3.x के साथ छोड़ दिया गया है।सी ++ 11

मैं हिम तेंदुए पर सी ++ 11 का उपयोग कैसे जारी रख सकता हूं? क्या ऐसा कोई तरीका है जो मैं कर सकता हूं और एक्सकोड को आईडीई के रूप में रख सकता हूं?

+0

संभावित डुप्लिकेट [क्या मैं एक्सकोड 4 या ओएसएक्स शेर में सी ++ 11 की नवीनतम सुविधाओं का उपयोग कर सकता हूं?] (Http://stackoverflow.com/q/7482026/636019) – ildjarn

+0

ildjarn, बिल्कुल नहीं। यह प्रश्न XCode संस्करणों <4 से संबंधित है क्योंकि हिम तेंदुए उपयोगकर्ताओं को XCode 4 का उपयोग करने से रोक दिया गया है। आपके द्वारा लिंक किया गया प्रश्न XCode 4/शेर के बारे में है। – nuit9

+1

जबकि एक्सकोड 3 हिम तेंदुए के लिए डिफ़ॉल्ट है, ऐप्पल ने मैक ऐप स्टोर के माध्यम से एसएल के लिए उपलब्ध एक्सकोड 4 का प्रारंभिक संस्करण बनाया है (और संस्करण एप्पल डेवलपर कनेक्शन के माध्यम से उपलब्ध थे/उपलब्ध थे)। –

उत्तर

6

अद्यतन feb.25 2012: अब नवीनतम क्लैंग का उपयोग करने के लिए आपके लिए काम करने के लिए कई सुविधाएं उपलब्ध हैं। शायद यदि आप केवल भाषा सुविधाएं का उपयोग करते हैं तो आप 10.6 को लक्षित कर सकते हैं। यदि आपको लाइब्रेरी सुविधाओं की आवश्यकता है, तो आपको 10.7 की आवश्यकता होगी।


वर्तमान (sept.24.2011) Xcode टूलसेट के राज्य दिया, यह सबसे आसान (IMO) एक और आईडीई या ओएस चयन करने के लिए आप की जरूरत है, तो C++ 11 समर्थन है।

जीसीसी एक्सकोड उपयोगों का कांटा इन सुविधाओं का कभी समर्थन नहीं करेगा। क्लैंग wrt C++ 11 विशेषताओं के पीछे बहुत दूर है (क्योंकि इसका सी ++ कार्यान्वयन अभी भी बहुत नया है और अन्य कंपाइलर्स के पास कुछ अतिरिक्त वर्ष हैं)। इसलिए, आपके द्वारा उपयोग किए जाने वाले ओएसएक्स के संस्करण के बावजूद, कंपाइलर xcode जहाजों वर्तमान में सी ++ 11 विकास के लिए पर्याप्त विशेषताओं का समर्थन नहीं करते हैं।

आप जीसीसी का एक नया संस्करण स्थापित कर सकते हैं और किसी अन्य विचार को आसानी से उपयोग कर सकते हैं।

तकनीकी रूप से, आप एक्सकोड 3 (आधिकारिक तौर पर समर्थित नहीं) के लिए एक प्लगइन भी बना सकते हैं जो एक और कंपाइलर (उदाहरण के लिए जीसीसी की हालिया रिलीज) का आह्वान करता है। वह मार्ग xc4 (afaik) में बंद कर दिया गया है। अद्यतन स्पष्ट रूप से, यह अभी भी एक्ससी 4 में उपलब्ध है; नीचे idljarn की टिप्पणी देखें।

कई परियोजनाओं के लिए, लिनक्स या विंडोज (या वर्चुअलाइजेशन का उपयोग करें) में बूट करने के लिए बस अपने मैक का उपयोग करना आसान है।

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

आखिरकार, मुझे नहीं लगता कि वे आपके अपग्रेड पैसे के लिए ऐसा करते हैं। वे वास्तव में एकाधिक रिलीज के लिए एक्सकोड को बहुत अच्छी तरह से बनाए रखते हैं - वे उम्मीद करते हैं कि आपको नवीनतम और महानतम के साथ रहने की उम्मीद न हो जब तक आपको पिछली संगतता की आवश्यकता न हो; आप बस उस मामले में उन्नयन बंद करो। जीसीसी के लाइसेंस बदलने के बाद उन्होंने निवेश किया और क्लैंग के विकास में सहायता की। तो हाँ ... ओएसएक्स हमेशा wrt C++ 11 समर्थन के पीछे बहुत दूर रहा है क्योंकि उन्होंने दूसरे (बहुत छोटे) कंपाइलर पर स्विच करने का फैसला किया है। यदि आप सी ++ 11 का समर्थन करने के लिए एक्सकोड की प्रतीक्षा करते हैं, तो आपको इसका समर्थन करने के लिए क्लैंग का इंतजार करना होगा, जो काफी समय हो सकता है।

+1

एक्सकोड 3 के लिए प्लगइन्स भी xcode 4 (हालांकि असमर्थित) के लिए काम करते हैं। – ildjarn

+0

@ildjarn बस मुझे क्या चाहिए ... रात के अंत से पहले एक और परियोजना (लेकिन गंभीरता से, धन्यवाद! =)) – justin

+0

@ildjarn पुष्टि की। gcc4.5 ('पोर्ट' के माध्यम से) xc4 के साथ एक प्लगइन के रूप में काम करता है। – justin

3

मैंने अभी यह देखा है और मैं आपको इस पर अपडेट करना चाहता हूं। वर्तमान में एक्सकोड के साथ शिपिंग एलएलवीएम संस्करण 3 (Source) पर है। यह वर्तमान संस्करण सी ++ 11 का समर्थन करने के साथ बहुत अच्छा है।

http://clang.llvm.org/cxx_status.html

आप वर्तमान जीसीसी समर्थन यहाँ के साथ इस तुलना कर सकते हैं:: यहाँ क्या समर्थित है के लिए एक लिंक है

http://gcc.gnu.org/projects/cxx0x.html

आप देख सकते हैं, बजना वर्तमान में बहुत पीछे नहीं है, यदि यह बिल्कुल सही है, तो नए मानक की सुविधाओं का समर्थन किया जा रहा है। एकमात्र चीज जो मैं देखता हूं वह समरूपता सुविधाओं के लिए समर्थन की कमी है, लेकिन इसका समर्थन करने की प्रकृति के कारण अधिकांश सी ++ 11 कंपाइलर्स का मामला है। इसलिए मुझे आशा है कि यह उत्तर बहुत देर हो चुकी है और आप हैं बर्बाद नहीं जाओ एक्सकोड का नवीनतम संस्करण प्राप्त करें और आग लगें (यदि आपने पहले से ऐसा नहीं किया है;))!