2011-12-29 16 views
15

मैक ओएसएक्स (शेर 10.7.1, एक्सकोड 4.1) के मेरे संस्करण पर, एलएलवीएम 3.0 एसवीएन और क्लैंग 2.1 है। current versions एलएलवीएम 3.0 और क्लैंग 3.0 हैं।मैक ओएसएक्स पर एलएलवीएम और क्लैंग को कैसे अपडेट करें?

XCode web site से, ऐसा लगता है कि नवीनतम संस्करण (4.2.1) अभी भी एलएलवीएम 2.0 का उपयोग करता है, और यह एक गलती प्रतीत होता है।

क्या आपको पता है कि नवीनतम एक्सकोड I स्थापित करने से मुझे एलएलवीएम/क्लैंग का एक नवीनतम संस्करण मिल जाएगा?

क्या आप किसी भी संभावित मुद्दे installing Clang manually के बारे में जानते हैं?

एक बार इंस्टॉल हो जाने पर, क्या नया क्लैंग स्वचालित रूप से मेरे सभी आईडीई (जैसे नेटबीन) द्वारा उपयोग किया जाएगा?

+2

यह भी ध्यान रखें कि ऐप्पल llvm/clang के लिए अपने स्वयं के संस्करण का उपयोग करता है। तो, ऐप्पल एलएलवीएम 3.0/क्लैंग 3.0 llvm.org के एलएलवीएम 3.0 से अलग हैं :) बाद वाले हाल ही में हैं। –

उत्तर

8

सॉफ्टवेयर विक्रेता परंपरागत रूप से निर्माण उपकरण को अद्यतन करने और अच्छे कारण के बारे में रूढ़िवादी हैं। यदि आप एप्पल द्वारा आपूर्ति और संशोधित बिल्ड टूल्स के नवीनतम सार्वजनिक रूप से समर्थित संस्करणों का उपयोग करना चाहते हैं, तो आपको ओएस एक्स रिलीज के लिए एक्सकोड के नवीनतम संस्करण में उन लोगों के साथ रहना चाहिए जो आप चल रहे हैं। आम तौर पर अच्छे कारण हैं कि ऐप्पल ने अभी तक खुले स्रोत घटकों के नवीनतम अत्याधुनिक संस्करणों में क्यों अपडेट नहीं किया है, जैसे गंभीर बग। यदि आपको ऐप्पल द्वारा आपूर्ति किए गए संशोधनों की आवश्यकता नहीं है और किनारे पर रहने की कोई बात नहीं है - यानी ऐप्पल से कोई समर्थन नहीं है और संभवतः ज्ञात समस्याओं की खोज (फिर से) - और अन्य लोगों के सिस्टम में संकलित फ़ाइलों को शिप करने की योजना नहीं बना रहे हैं, तो आप /usr/local/bin या मैकपॉर्ट्स http://www.macports.org/ports.php?by=name&substr=clang जैसे तृतीय-पक्ष पैकेज मैनेजर का उपयोग करके अपने संस्करणों को इंस्टॉल कर सकता है। आपको निश्चित रूप से फ़ाइलों को Xcode द्वारा स्थापित पथों पर प्रतिस्थापित करने का प्रयास करना चाहिए। यह इसके लायक है? केवल आप ही तय कर सकते हैं।

+0

अद्यतन: ओएस एक्स 10.7 के लिए वर्तमान एक्सकोड 4.3.3 में 'क्लैंग' का एक नया संस्करण है: 'ऐप्पल क्लैंग संस्करण 3.1 (टैग/ऐप्पल/क्लैंग -318.0.61) (एलएलवीएम 3.1 एसवीएन पर आधारित) '। –

+2

ऐप्पल का संस्करण नंबरिंग क्लैंग से मेल नहीं खाता है। क्लैंग 3.1 से पहले स्रोत पर आधार पर ऐप्पल क्लैंग 3.1 बनाया गया है। इसमें प्रारंभिक सूचियों जैसी कुछ सी ++ 11 विशेषताएं अनुपलब्ध हैं। उन्होंने 4.4DP में संस्करण को 4.0 तक बढ़ा दिया लेकिन यह अभी भी 3.1 स्तर फीचर-वार है। –

+0

यह एफयूडी है, क्लैंग की स्थिर रिलीज काफी स्थिर हैं और अन्य ऑपरेटिंग सिस्टम जैसे फ्रीबीएसडी नवीनतम संस्करण – jupp0r

8

वेबसाइट गलत है।

बजना --version
एप्पल बजना संस्करण 3.0 (टैग/एप्पल/बजना-211.12) (LLVM 3.0svn के आधार पर)

बजना ++: Xcode 4.2.1 और 4.2 LLVM 3.0 और बजना 3.0 शामिल --version
एप्पल बजना संस्करण 3.0 (टैग/एप्पल/बजना-211.12) (LLVM 3.0svn के आधार पर)

LLVM-जी ++ --version
i686-सेब के darwin11-LLVM-जी ++ - 4.2 (जीसीसी) 4.2.1 (ऐप्पल इंक के आधार पर 5658 का निर्माण) (एलएलवीएम 2336.1.00 का निर्माण)

,210

LLVM-जीसीसी --version
i686-सेब के darwin11-LLVM-जीसीसी-4.2 (जीसीसी) 4.2.1 (5658 निर्माण पर एप्पल इंक के आधार) (LLVM 2336.1.00 निर्माण)

+0

मैं एक्सकोड 4.4.1 पर हूं और मैं अभी भी देखता हूं: 'ऐप्पल क्लैंग संस्करण 2.1 (टैग/ऐप्पल/क्लैंग -163.7.1) (एलएलवीएम 3.0 एसवीएन पर आधारित) लक्ष्य: x86_64-apple-darwin11.4.0 थ्रेड मॉडल : posix' –

+0

मैं एक्सकोड के समान संस्करण पर हूं लेकिन क्लैंग -वर्जन रिपोर्ट: ऐप्पल क्लैंग संस्करण 4.0 (टैग/ऐप्पल/क्लैंग -421.0.60) (एलएलवीएम 3.1 एसवीएन पर आधारित) लक्ष्य: x86_64-apple-darwin12। 1.0 थ्रेड मॉडल: पॉज़िक्स। शायद आपके पास एक्सकोड का पुराना संस्करण अभी भी 4.4.1 के साथ स्थापित है? यह देखने के लिए कि कमांड लाइन उपकरण घटक स्थापित किया गया है या नहीं, यह देखने के लिए एक्सकोड की वरीयताओं में डाउनलोड टैब भी देखें। –

+0

@JamesMcKinney आपको अपने सिस्टम को एक्सकोड के संस्करण के साथ स्थापित क्लैंग के संस्करण पर इंगित करने के लिए कमांड लाइन पर एक्सकोड-चयन चलाने की आवश्यकता हो सकती है। – leecbaker

2

XCode 4.6 के साथ माउंटेन शेर 10.8.2 पर, संस्करण हैं:

$ clang --version 
Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn) 
Target: x86_64-apple-darwin12.2.0 
Thread model: posix 

$ clang++ --version 
Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn) 
Target: x86_64-apple-darwin12.2.0 
Thread model: posix 

$ llvm-g++ --version 
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) 
Copyright (C) 2007 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

$ llvm-gcc --version 
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) 
Copyright (C) 2007 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

तुम भी App स्टोर या एप्पल डेवलपर खाता प्रत्यक्ष डाउनलोड से शेर के लिए XCode अद्यतन कर सकते हैं, और कमांड लाइन उपकरण है, जो बजना & अद्यतन करेगा स्थापित संस्करणों के लिए llvm।

+0

जैसा कि अपेक्षित है, ओएसएक्स 10.8.3 के बाद एक्सकोड 4.6.1 जारी किया गया है जिसमें क्लैंग -425.0.27 –

1

ओएस एक्स अपडेट संस्करण 10.9.2 एक्सकोड को संस्करण 5 में लाता है।1 (5B130a), और (ओएस एक्स के लिए) नवीनतम स्थिर करने के लिए बजना:

$ clang --version 
Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn) 
Target: x86_64-apple-darwin13.1.0 
Thread model: posix 

पर मेरे Mac LLVM-जीसीसी और LLVM-जी ++ इस बजना करने के लिए सिमलिंक हैं:

lrwxr-xr-x 1 root wheel  5B 25 Oct 16:48 /usr/bin/llvm-gcc -> clang 
lrwxr-xr-x 1 root wheel  7B 25 Oct 16:48 /usr/bin/llvm-g++ -> clang++ 

मेरे नवीनतम अनुसंधान स्थापना llvm-gcc-4.2 का उपयोग करने के लिए कॉन्फ़िगर किया गया है जो SHLIB का निर्माण करते समय त्रुटि उत्पन्न करेगा। एलएलवीएम-जीसीसी-4.2 और llvm-g ++ - 4.2 के लिए symlinks बनाना, उसी तरह, एलएलवीएम या CLANG को बदलने के बजाय त्रुटियों को हल करने के लिए पर्याप्त है। मामले में

brew install llvm 

वहाँ भी संस्करणीकृत रहे हैं संकुल आप एक विशिष्ट संस्करण की आवश्यकता:

6

आप आराम से homebrew उपयोग कर अपने खुद LLVM निर्माण कर सकते हैं

+0

शामिल है, यह अब काम नहीं करता है क्योंकि यह टैप खाली है। '$ ब्रू टैप होमब्रू/संस्करण' रिटर्न "चेतावनी: होमब्रू/संस्करणों को हटा दिया गया था। यह टैप अब खाली है क्योंकि इसके सभी सूत्र माइग्रेट किए गए हैं।" क्या अब ऐसा करने का कोई तरीका है? –

+1

हां यह अभी भी काम करता है, मैंने जवाब अपडेट किया। – jupp0r