Ubuntu'da llvm ve clang kurulumu


16

Ben yüklemeye çalışıyorum Yani Halide benim Ubuntu 12.04 (64bit) üzerine. Yüklenecek llvm-3.2 ve clang'a ihtiyacım var.

Çalıştırma sudo apt-get install llvm-3.2, 'paket bulunamadı' ile sonuçlanır.

2.9 sürümlerini denemek sudo apt-get install llvmveya sudo apt-get install clangyüklemek. Google bu konuda bana yardımcı oldu

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

Şimdi sudo apt-get install llvm-3.2 clang-3.2çalışıyor. Ama Halide klasöründe make'i çalıştırdığımda hala clang alıyorum: Komut bulunamadı.


2
"Clag: Komut bulunamadı" varsayalım "clang: Komut bulunamadı" okumalı?
andyg0808

Evet, bunun için üzgünüm

GUI'li bir Ubuntu mu yoksa yalnızca komut satırı olan bir Ubuntu mu kullanıyorsunuz?
andyg0808

Ayrıca, clang 3.2 veya sadece clang 3+ mı gerekiyor?
andyg0808

Masaüstü sürümünü indirdim. Aslında llvm 3.2'ye ihtiyacım var, clang sürümü hakkında hiçbir kelime yok.

Yanıtlar:


9

Tamam, bu yüzden başarılı yükleyerek Ubuntu 13.04 üzerinde olan Halide derlenmiş llvm, clangve build-essential. Sorununuzla ilgili tek tahminim, yüklediğiniz PPA'dan gelen LLVM veya clang'ın düzgün çalışmamış olabileceğidir. Aslında "önerilen" arşiv olarak bilinen, 12.04 için Ubuntu LLVM 3.2 almak mümkün görünüyor. Sahip olduğunuz LLVM'yi temizlemeyi ve "önerilen" den yüklemeyi deneyebilirsiniz. Bunu nasıl yapacağınızı aşağıda açıklayacağım. Ubuntu'da yeni olduğunuzu belirttiğinizden (orijinal soru sürümünde), önce kullandığınız her komutun yapabildiğini en iyi şekilde açıklayacağım.

Bu nedenle, sisteminizde etkinleştirilmiş olan geçerli depolardansudo apt-get install llvm-3.2 adlı paketi yüklemeye çalışır . Sizin durumunuzda bulunamadı, bu yüzden komut başarısız oldu. yüklü sadece standart depolarda bulunan en yukarı güncel LLVM kullandığı muhtemelen özel bir pakettir paketi. Sizin durumunuzda, bu 2.9 idi. Aynı fikir için de geçerlidir . sisteminize kişisel paket arşivi veya PPA adı verilenleri ekler . Bu, başka bir depodan veya yazılım kaynağından daha fazla yazılım almanızı sağlar . Daha fazla bilgi için https://help.launchpad.net/Packaging/PPA adresine bakın . En sonunda,llvm-3.2sudo apt-get install llvmllvmsudo apt-get install clangsudo add-apt-repository ppa:kxstudio-team/buildssudo apt-get updateUbuntu'ya mevcut depolardan hangi paketlerin kullanılabilir olduğu hakkında bilgi almasını söyler. Debian'da paket yönetimi hakkında daha fazla bilgi için http://www.debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html adresine bakabilirsiniz (çoğu Ubuntu için de geçerlidir, çünkü Ubuntu Debian'a dayanmaktadır).

Bu nedenle, sahip olduğunuz paketleri kaldırma ve kesin olarak önerilen sürümleri yükleme adımları:

  1. sudo apt-get purge llvm-3.2 clang-3.2LLVM ve clang'ı sisteminizden tamamen kaldırmak için kullanın .
  2. (İsteğe bağlı) sudo add-apt-repository --remove ppa:kxstudio-team/buildsPPA'yı sisteminizden kaldırmak için kullanın .
  3. Önerilen arşivi (sayfanın hemen üstünde) etkinleştirmek için https://wiki.ubuntu.com/Testing/EnableProposed adresindeki talimatları uygulayın ve ayrıca "Teklif edilen öğeden seçici yükseltme" talimatlarını uygulayın. İlk bölüm, llvm-3.2paketin gerçek Ubuntu sürümünü etkinleştirecek ve ikincisi, sistemin her şeyi Önerilen sürümlere yükseltmeye çalışmasını engelleyecektir.
  4. sudo apt-get updateŞu anda hangi paket ve sürümlerin mevcut olduğu hakkında bilgi almak için kullanın .
  5. sudo apt-get install llvm-3.2/precise-proposedLLVM 3.2'yi yüklemek için kullanın ve sudo apt-get install clang/precise-proposedClang 3.0'ı yüklemek için kullanın (bence alacağınız sürüm budur).
  6. YENİ ADIM: Do sudo ln -s /usr/bin/llvm-config-3.2 /usr/local/bin/llvm-configsistem tedavi yapmak llvm-config-3.2(ki llvm-configbirlikte gelen bu llvm-3.2gibi) llvm-config. Daha ayrıntılı olarak, bu, Ubuntu'nun programları arayacağı başka bir yerde llvm-config-3.2'ye sembolik bir bağlantı (veya sembolik bağlantı) oluşturur (daha fazla bilgi: ln , FHS , PATH ). Bu nedenle, "llvm-config" komutunu çalıştırdığınızda, Ubuntu symlink'i bulur ve işaret ettiği programı ( llvm-config-3.2) çalıştırır.
  7. Şimdi her şeyin doğru bir şekilde derlenip derlenmediğine bakın.

Umarım işe yarar. Bunların hiçbirini test etmedim, bu yüzden kendi sorumluluğunuzdadır vb. Kullanın. Ancak, korkunç bir şey yapmaması gerektiğinden eminim.

EDIT: Unutmayın llvmve llvm-3.2bağımsızdır. llvmbağlıdır llvm-2.9( burada bakınız ederken,) llvm-3.2ayrıdır ( burada bağımlılıkları bakınız )

Ayrıca, sekme tamamlamayı bilip bilmediğinizden emin değilim ; bir komut arıyorsanız, ancak adı tam olarak bilmiyorsanız yararlı olabilir (örneğin, bu durumda, muhtemelen llvm-configarandığını gösterecektir llvm-config-3.2).


Çok teşekkürler! Neredeyse işe yaradı. Tek sorun, kurulu llvm-3.2'nin llvm-config'e sahip olmamasıdır. Halide'de make çalıştırdığımda hiçbir llvm kurulu olmadığını söyler. Ben llvm install koştu ve şimdi llvm-config - sürüm 2.9 diyor. Llvm-3.2'yi yüklemeye çalışırsam, bunun en son sürüm olduğunu söyler. Görünüşe göre llvm-3.2 ve llvm tamamen bağımsızdır.

Cevaptaki yeni adıma bakın; muhtemelen doğru sürümü aldığınızdan emin olmak için llvmpaketi ( sudo apt-get purge llvm) kaldırmadan önce kaldırmak istersiniz . Komutu kullanarak her zaman hangi dosyayı çalıştırmaya çalıştığınızı kontrol edebilirsiniz which [command]. Örneğin, which llvm-configokumalı /usr/local/bin/llvm-config. Daha fazla bilgi için en.wikipedia.org/wiki/Which_%28Unix%29 adresine bakın .
andyg0808

neden llvm-config gcc için olduğu gibi llvm-config-3.2 ile bağlantılı değil? bu bilinçli bir seçim mi?
Janus Troelsen

@JanusTroelsen Bilinçli bir seçim olduğuna inanıyorum. llvmUbuntu 12.04 için pakette bulunan LLVM sürümü olduğundan llvm-2.9, llvm-configkomut llvm-configaynı sürümden, yani llvm-config-2.9. Ubuntu 13.04 ve 13.10'da, llvmpaket LLVM 3.2'yi yükler ve daha sonra Ubuntu 13.10'da olduğu llvm-config-3.2gibi kurulmasını llvm-configbeklerim.
andyg0808
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.