2013-04-28 5 views
5

मेरे पास एक पुराना कंप्यूटर है जो शेर में अपग्रेड नहीं कर सकता है, लेकिन मैं इसे कोडिंग के लिए उपयोग करना चाहता हूं जबकि अभी भी instancetype और उद्देश्य-सी अक्षर जैसे वाक्यविन्यास का लाभ उठा रहा हूं। क्या किसी ने पुराने एक्सकोड के साथ उपयोग करने के लिए एक नया क्लैंग और एलएलवीएम संकलित करने की कोशिश की है और सफल रहा है?क्या एलएलवीएम का एक नया संस्करण संकलित करना और एक्सकोड के साथ इसका उपयोग करना संभव है?

+1

संभवतः आधिकारिक रूप से समर्थित नहीं होना चाहिए। शुरू करने के लिए गूगल "clang ट्रंक xcode प्लगइन"। – justin

+1

@justin मुझे इस पर पीटा पथ से बाहर जाने की उम्मीद है। उस दिशा में मुझे इंगित करने के लिए धन्यवाद। –

+0

आपका स्वागत है। सौभाग्य से, दूसरों ने इसका वर्णन किया है और आपके उपयोग के लिए प्लगइन प्रदान किए हैं। – justin

उत्तर

8

नवीनतम एलएलवीएम/क्लैंग संस्करण का उपयोग करने के कई तरीके हैं।

(1) प्लगइन्स, ऊपर टिप्पणियों, जैसे में वर्णित हैं: http://blog.wadetregaskis.com/tot-clang-llvm-in-xcode/

के रूप में जुड़े हुए ब्लॉग पोस्ट में कहा, आप त्रुटियों/Xcode के वास्तविक समय वाक्य रचना की चेतावनी के Xcode के रूप में जाँच मिल सकता है libclang के पुराने संस्करण का उपयोग करता है (उस पर अधिक (3))। यह ठीक संकलित होने की संभावना है, लेकिन संपादन स्रोत कोड बहुत मजेदार नहीं होगा।

(2) CC ध्वज के माध्यम से कंपाइलर सेट करें। यह शायद सबसे आसान/सबसे तेज़ समाधान है और सेटिंग केवल एक प्रोजेक्ट को प्रभावित करती है। प्रोजेक्ट की बिल्ड सेटिंग्स पर जाएं, "बिल्ड सेटिंग जोड़ें" चुनें -> "उपयोगकर्ता-निर्धारित सेटिंग जोड़ें" (एक्सकोड 5 में, यह संपादक मेनू में छिपा हुआ है), इसे CC नाम दें और मान को अपने पथ पर सेट करें क्लैंग का संस्करण। मेरे लिए ठीक काम किया, लेकिन (1) के साथ, आपको लाइव त्रुटि रिपोर्टिंग के साथ संघर्ष मिल सकता है, खासकर यदि आप नए सिंटैक्स का उपयोग करना चाहते हैं जैसे कि शाब्दिक, या पुराने संस्करण को समझने वाली चेतावनियों के लिए फ़्लैग पास करना चाहते हैं।

(3) संकलक को बदलें। सुनिश्चित करें कि आप उन्हें बदलने से पहले किसी भी फाइल का बैकअप लें। दो फाइलें हैं जिन्हें प्रतिस्थापित करने की आवश्यकता है: क्लैंग बाइनरी, और libclang.dylib। /Applications/Xcode.app/ पर जाएं -> विकल्प-क्लिक करें -> "पैकेज सामग्री दिखाएं" ->/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr पर जाएं। clang /bin में है, libclang.dylib /lib में है।

दोनों द्विआधारी या तो स्रोत से संकलित किए जा सकते हैं (जो आपको निश्चित रूप से एक नया संस्करण भी देगा) या बस नवीनतम एक्सकोड पैकेज से कॉपी किया गया है। मैं libclang के एक अनुकूलित संस्करण का उपयोग कर परेशानी में भाग गया, लेकिन मुझे संदेह है कि समस्या मेरे संशोधनों से उत्पन्न होती है। यदि संदेह है, तो बाद के एक्सकोड संस्करण से libclang का उपयोग करें।

नोट: मेरी संशोधित libclang बाइनरी एआरसी का उपयोग किया और इसलिए एक्सकोड 4 के साथ असंगत है जो कचरा संग्रह के साथ चलाता है। एक्सकोड 5 स्वयं एआरसी का उपयोग करता है ताकि समस्या गायब हो गई हो। यदि आप libclang unmodified संकलित करते हैं, तो आपको या तो Xcode 4 या 5.

+1

बहुत बढ़िया जानकारी, धन्यवाद। –

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

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