ubuntu पर llvm और क्लैंग इंस्टॉलेशन


16

इसलिए मैं अपने Ubuntu 12.04 (64 बिट) पर हैलीड को स्थापित करने की कोशिश कर रहा हूं । मुझे llvm-3.2 और क्लैंग को स्थापित करने की आवश्यकता है।

रनिंग sudo apt-get install llvm-3.2'पैकेज नहीं मिला' के साथ समाप्त होता है।

2.9 संस्करण आज़मा रहे हैं sudo apt-get install llvmया sudo apt-get install clangस्थापित कर रहे हैं । Google ने इसमें मेरी मदद की

sudo add-apt-repository ppa:kxstudio-team/builds
sudo apt-get update

अब, sudo apt-get install llvm-3.2 clang-3.2काम करता है। लेकिन जब मैं हैलीड फोल्डर में रन बनाता हूं तो मुझे अभी भी क्लैग मिलता है: कमांड नहीं मिला।


2
मुझे लगता है कि "क्लैग: कमांड नहीं मिला" को "क्लैंग: कमांड नहीं मिला" पढ़ना चाहिए?
andyg0808

हां, इस बारे में खेद है

क्या आप एक जीयूआई के साथ उबंटू का उपयोग कर रहे हैं या सिर्फ एक कमांड-लाइन के साथ?
andyg0808

इसके अलावा, क्या आपको क्लैंग 3.2 या क्लैंग 3+ की आवश्यकता है?
andyg0808

मैंने डेस्कटॉप संस्करण डाउनलोड किया। मुझे वास्तव में llvm 3.2 की आवश्यकता है, क्लैंग के संस्करण के बारे में कोई शब्द नहीं है।

जवाबों:


9

ठीक है, इसलिए मैंने सफलतापूर्वक स्थापित करके , और llvm, उबंटू 13.04 पर हैलीइड को संकलित किया clang, और build-essential। आपके मुद्दे के रूप में मेरा एकमात्र अनुमान यह है कि आपके द्वारा स्थापित पीपीए से एलएलवीएम या क्लैंग ने काफी सही काम नहीं किया होगा। ऐसा लगता है कि 12.04 के लिए उबंटू से LLVM 3.2 प्राप्त करना वास्तव में संभव है, जिसे "प्रस्तावित" संग्रह के रूप में जाना जाता है। आप एलएलवीएम को शुद्ध करने का प्रयास कर सकते हैं और इसे "प्रस्तावित" से स्थापित कर सकते हैं। मैं समझाता हूँ कि नीचे कैसे करना है। चूंकि आपने उल्लेख किया है कि आप उबंटू में हैं (मूल प्रश्न संस्करण में), मैं सबसे पहले बताऊंगा कि आपके द्वारा पहले से उपयोग की गई प्रत्येक कमांड क्या करती है, सबसे अच्छा मैं कर सकता हूं।

इसलिए, आपके सिस्टम पर सक्षम वर्तमान रिपॉजिटरी से sudo apt-get install llvm-3.2नामित पैकेज को स्थापित करने का प्रयास करता है। आपके मामले में, यह नहीं पाया जा सका, इसलिए कमांड विफल रही। पैकेज स्थापित किया है, जो संभवतः एक विशेष पैकेज है जो आपके मानक रिपॉजिटरी में उपलब्ध सबसे अद्यतित एलएलवीएम का उपयोग करता है। आपके मामले में, वह 2.9 था। उसी पर लागू होता है । आपके सिस्टम में एक व्यक्तिगत पैकेज संग्रह या पीपीए कहा जाता है। यह आपको किसी अन्य रिपॉजिटरी या सॉफ़्टवेयर स्रोत से अधिक सॉफ़्टवेयर प्राप्त करने देता है । अधिक जानकारी के लिए https://help.launchpad.net/Packaging/PPA देखें । आखिरकार,llvm-3.2sudo apt-get install llvmllvmsudo apt-get install clangsudo add-apt-repository ppa:kxstudio-team/buildssudo apt-get updateउबंटू को बताता है कि वर्तमान में उपलब्ध रिपॉजिटरी से कौन से पैकेज उपलब्ध हैं, इसकी जानकारी प्राप्त करें। आप डेबियन में पैकेज प्रबंधन के बारे में अधिक जानकारी के लिए http://www.debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html पर नज़र डाल सकते हैं (जिनमें से अधिकांश उबंटू में भी लागू होना चाहिए, चूंकि उबंटू डेबियन पर आधारित है)।

इसलिए, आपके द्वारा प्राप्त पैकेजों को हटाने और सटीक-प्रस्तावित से उपलब्ध संस्करणों को स्थापित करने के लिए कदम:

  1. sudo apt-get purge llvm-3.2 clang-3.2एलएलवीएम को पूरी तरह से हटाने और अपने सिस्टम से दूर करने के लिए उपयोग करें ।
  2. (वैकल्पिक) sudo add-apt-repository --remove ppa:kxstudio-team/buildsअपने सिस्टम से पीपीए को हटाने के लिए उपयोग करें ।
  3. Https://wiki.ubuntu.com/Testing/EnableProposed पर दिए गए निर्देशों का पालन करने के लिए प्रस्तावित संग्रह (पृष्ठ के शीर्ष पर दाईं ओर) सक्षम करें, और "चयनात्मक उन्नयन -proposed" के निर्देशों का भी पालन करें। पहला भाग llvm-3.2पैकेज के वास्तविक उबंटू संस्करण को सक्षम करेगा , और दूसरा सिस्टम को प्रस्तावित संस्करणों के लिए सब कुछ अपग्रेड करने की कोशिश से रखेगा।
  4. sudo apt-get updateअब पैकेज और संस्करण क्या उपलब्ध हैं, इस पर जानकारी खींचने के लिए उपयोग करें ।
  5. sudo apt-get install llvm-3.2/precise-proposedएलएलवीएम 3.2 को स्थापित करने के लिए उपयोग करें , और sudo apt-get install clang/precise-proposedक्लैंग 3.0 को स्थापित करने के लिए उपयोग करें (मुझे लगता है कि आपको जो संस्करण मिलना चाहिए)।
  6. नई चरण: क्या sudo ln -s /usr/bin/llvm-config-3.2 /usr/local/bin/llvm-configप्रणाली का इलाज करने के लिए llvm-config-3.2(जो llvm-configकि के साथ आया llvm-3.2के रूप में) llvm-config। अधिक पूरी तरह से, यह दूसरी जगह जहां उबंटू कार्यक्रमों के लिए दिखेगा (अधिक जानकारी: ln , FHS , PATH ) को llvm-config-3.2 में एक प्रतीकात्मक लिंक (या सिमलिंक) बनाता है । इस प्रकार, जब आप "llvm-config" चलाते हैं, तो उबंटू सिमिलिंक को खोज लेगा और उस प्रोग्राम को चलाएगा जो ( ) को इंगित करता है ।llvm-config-3.2
  7. देखें कि क्या सब कुछ सही ढंग से संकलित है।

उम्मीद है कि काम करता है। मैंने इसका कोई परीक्षण नहीं किया है, इसलिए अपने जोखिम पर उपयोग करें, आदि, मुझे पूरा यकीन है, हालांकि, यह भयानक कुछ भी नहीं करना चाहिए।

संपादित करें: ध्यान दें कि llvmऔर llvm-3.2स्वतंत्र हैं। llvmनिर्भर करता है llvm-2.9( यहाँ देखें ), जबकि llvm-3.2अलग है ( यहाँ निर्भरता देखें )

इसके अलावा, यदि आप टैब पूरा करने के बारे में जानते हैं तो मुझे यकीन नहीं है ; यदि आप एक कमांड की तलाश कर रहे हैं तो यह मददगार हो सकता है लेकिन नाम नहीं जानते हैं (उदाहरण के लिए, इस मामले में, यह संभवतः दिखाया llvm-configगया होगा जिसे कहा जाता है llvm-config-3.2)।


आपका बहुत बहुत धन्यवाद! यह लगभग काम कर गया। एकमात्र समस्या यह है कि स्थापित llvm-3.2 में llvm-config नहीं है। इसलिए जब मैं हैलीड में रन बनाता हूं तो यह बताता है कि कोई भी वीवीएम स्थापित नहीं है। मैंने llvm इंस्टॉल किया और अब llvm-config --version 2.9 कहता है। अगर मैं llvm-3.2 स्थापित करने की कोशिश करता हूं तो यह बताता है कि यह नवीनतम संस्करण है। ऐसा लगता है कि llvm-3.2 और llvm पूरी तरह से स्वतंत्र हैं।

जवाब में नया कदम देखें; आप शायद यह सुनिश्चित करने के लिए कि आप सही संस्करण प्राप्त करने से पहले llvmपैकेज ( sudo apt-get purge llvm) को अनइंस्टॉल करना चाहते हैं । आप हमेशा यह जांच सकते हैं कि कमांड का उपयोग करके आप किस फ़ाइल को चलाने की कोशिश कर रहे हैं which [command]। उदाहरण के लिए, which llvm-configपढ़ना चाहिए /usr/local/bin/llvm-config। अधिक जानकारी के लिए en.wikipedia.org/wiki/Which_%28Unix%29 देखें ।
andyg0808

जैसे ही gcc के लिए llvm-config-3.2 से llvm-config को लिंक नहीं किया जाता है? क्या यह एक सचेत विकल्प है?
जानूस ट्रॉल्सन

@JanusTroelsen मेरा मानना ​​है कि यह एक सचेत विकल्प है। चूंकि एलएलवीएम का संस्करण जो llvmउबंटू 12.04 के लिए पैकेज से उपलब्ध था llvm-2.9, llvm-configकमांड llvm-configउसी संस्करण से लिंक किया गया था , अर्थात llvm-config-2.9। उबंटू 13.04 और 13.10 में, llvmपैकेज एलएलवीएम 3.2 स्थापित करता है, और मुझे उम्मीद है कि यह उबंटू के llvm-config-3.2रूप में स्थापित होगा llvm-config, जो उबंटू 13.10 में करता है।
andyg0808
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.