2013-07-29 6 views
5

क्लैंग के पास binary distro है, लेकिन कोई भी README फ़ाइल या कुछ भी नहीं है जो आपको बताता है कि टैरबॉल में क्या है या इसके साथ क्या करना है।द्विआधारी वितरण से क्लैंग कैसे स्थापित करें?

ऐसा प्रतीत होता है कि मुझे अलग-अलग डाउनलोड करने और libc++ इंस्टॉल करने की आवश्यकता है। मुझे केवल clang बाइनरी और शायद कुछ अन्य लोगों की प्रतिलिपि बनाने की आवश्यकता हो सकती है, लेकिन सभी llvm-* सामान नहीं। यह बाइनरी डिस्ट्रो में किसी भी सी ++ हेडर की कमी के कारण ही निर्णय ले रहा है (हालांकि कुछ पर्यावरण-विशिष्ट शीर्षलेख शामिल हैं), और llvm-as की कमी और एक्सकोड से मेरे मौजूदा एलएलवीएम 3.2 स्थापना की कमी।

मैं सिर्फ संकलक चलाने के लिए चाहता हूं, libclang के साथ विकसित नहीं करना या एलएलवीएम असेंबली फाइलों को इकट्ठा करना चाहता हूं। क्या कोई निर्देश पृष्ठ कहीं है?

+0

यदि यह ओएस एक्स के लिए है तो जब आप Xcode 4.x के किसी भी नवीनतम संस्करण को स्थापित करते हैं तो आपको पहले से ही क्लैंग स्थापित होना चाहिए, नहीं? –

+0

मैकपॉर्ट्स से उपलब्ध संस्करण को पकड़ने के बारे में कैसे? – jalf

+0

@ पॉल मैं आश्चर्यचकित था, लेकिन नवीनतम एक्सकोड में केवल 3.2 है (या मुझे बुरी तरह गलत है। वैसे भी मैं इसका उपयोग नहीं करता हूं।) – Potatoswatter

उत्तर

3

एलएलवीएम प्रोजेक्ट वास्तव में कई लोगों को बाइनरी वितरण का उपयोग करने की अपेक्षा नहीं करता है। एलएलवीएम आवधिक सत्यापन के लिए रिलीज़ करता है, लेकिन यह अपेक्षा की जाती है कि अधिकांश उपयोगकर्ताओं को अपने ओएस डिस्ट्रो के माध्यम से एलएलवीएम मिलेगा या वे स्रोत से इच्छित संस्करण का निर्माण करेंगे।

this email thread देखें जहां क्लैंग डेवलपर चर्चा कर रहे हैं कि बाइनरी विचलन का उपयोग कैसे किया जाता है।

उस ने कहा, यदि आप चाहें तो अपने वितरण का उपयोग कर सकते हैं। इंस्टॉल करने के लिए आप क्या करना चाहते हैं इस पर निर्भर करता है:

  • क्लैंग को स्थिर कंपाइलर के रूप में उपयोग करें।
  • क्लैंग आधारित उपकरण बनाएं।
  • अपने कस्टम भाषा कंपाइलर के लिए बैकएंड के रूप में एलएलवीएम का प्रयोग करें।

मैं केवल बजना द्विआधारी और शायद कुछ अन्य लोगों को कॉपी करने की आवश्यकता हो सकती है, लेकिन सभी llvm- * सामान।

तो संकलन है सब आप क्या करना चाहते C/C++/Obj सी है, तो मेरा मानना ​​है कि आप सभी की जरूरत बजना बाइनरी (और 'बजना ++' प्रतीकात्मक कड़ी), 'निर्मित' हेडर है, और रनटाइम पुस्तकालयों। आप /lib/clang/<version>/ में उन शीर्षलेखों और libs पाएंगे। (क्लैंग कंपाइलर आमतौर पर बाइनरी के सापेक्ष अपने स्थान के आधार पर अपने अंतर्निर्मित हिस्सों को पाता है।)

यदि आप बैकएंड के रूप में एलएलवीएम का उपयोग करना चाहते हैं, तो आपको एलएलवीएम हेडर और पुस्तकालयों को बनाने और लिंक करने की आवश्यकता होगी, या आपको अपने फ्रंटएंड के आउटपुट को संसाधित करने के लिए कुछ ll * binaries की आवश्यकता होगी।

यदि आप क्लैंग आधारित उपकरण बनाना चाहते हैं तो आपको स्थिर सी एपीआई या अस्थिर सी ++ एपीआई के निर्माण और लिंक के लिए क्लैंग हेडर और पुस्तकालयों की आवश्यकता होगी।

ध्यान दें कि पुस्तकालय आरटीटीआई के साथ बनाए गए हैं और अपवाद अक्षम हैं। यह एबीआई को बदलता है और इसलिए आप इन्हें आरटीटीआई या अपवाद सक्षम के साथ बनाए गए कोड से लिंक नहीं कर सकते हैं।

ऐसा प्रतीत होता है कि मुझे libC++ को अलग से डाउनलोड और स्थापित करने की आवश्यकता है।

सही, libC++ को एलएलवीएम के वितरण के हिस्से के रूप में शामिल नहीं किया गया है। नाममात्र एलएलवीएम सबप्रोजेक्ट्स में से कई शामिल नहीं हैं। एलएलडीबी एक और उदाहरण है।

न ही एलएलवीएम में मानक सी लाइब्रेरी या मूल उद्देश्य-सी फ्रेमवर्क शामिल हैं।

+0

धन्यवाद ... मैंने स्रोत से स्थापित करने का निर्णय लिया है क्योंकि 3.3 अभी भी मेरे प्रोग्राम को संसाधित नहीं करेगा (केवल एक चाल को फेंक नहीं देगा)। हाहा, अगर वे केवल लिखने के प्रयास का 1% डालते हैं ईमेल थ्रेड को 'readme' फ़ाइल में ... – Potatoswatter

2

के लिए Ubuntu/डेबियन (सहित लिनक्स मिंट) आधारित लिनक्स वितरण, वहाँ भी से http://llvm.org/apt/

हैं पहले से बने .deb फ़ाइलें इस लाभ यह है कि यह easer है बाद में किसी समय की स्थापना रद्द करने की है, और यह भी प्रदान करता है Clang 3.4 रात का निर्माण करता है (3.3 संस्करण भी प्रदान किया जाता है)। बस अपने sources.list पर एक पंक्ति जोड़ें (या ऐसा करने के लिए एक जीयूआई पैकेज प्रबंधक का उपयोग करें) और आप सेट हैं।

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