встановлення llvm та clang на ubuntu


16

Тому я намагаюся встановити Halide на своєму Ubuntu 12.04 (64bit). Мені потрібно встановити llvm-3.2 та кланг, щоб встановити.

Запуск sudo apt-get install llvm-3.2закінчується "пакетом не знайдено".

Спробуйте sudo apt-get install llvmабо sudo apt-get install clangвстановіть 2.9 версії. Google мені допоміг у цьому

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

Тепер sudo apt-get install llvm-3.2 clang-3.2працює. Але коли я запускаю make в папці Halide, я все одно отримую кланг: Command не знайдена.


2
Я припускаю, що "clag: Command not found" повинен читати "clang: Command not found"?
andyg0808

так, пробачте про це

Ви використовуєте Ubuntu з графічним інтерфейсом або один лише з командним рядком?
andyg0808

Крім того, чи потрібен вам затискач 3.2 або просто клац 3+?
andyg0808

Я завантажив версію Desktop. Мені справді потрібен llvm 3.2, про версію clang немає жодного слова.

Відповіді:


9

Добре, так що я успішно скомпільовано галогенид на Ubuntu 13.04, встановивши llvm, clangі build-essential. Моє єдине припущення щодо вашої проблеми - це те, що LLVM або клаксони з встановленого вами PPA, можливо, не спрацювали правильно. Здається, насправді можливо отримати LLVM 3.2 від Ubuntu за 12.04 через те, що відомо як "запропонований" архів. Ви можете спробувати очистити наявний LLVM та встановити його з "запропонованого". Я поясню, як це зробити нижче. Оскільки ви згадали, що ви новачок у Ubuntu (у початковій версії запитання), я спочатку поясню, що робить кожна команда, яку ви вже використовували, якнайкраще.

Отже, sudo apt-get install llvm-3.2спроби встановити пакет, названий llvm-3.2із поточних сховищ, увімкнених у вашій системі. У вашому випадку його не вдалося знайти, тому команда не вдалася. sudo apt-get install llvmвстановив llvmпакет, який, мабуть, є спеціальним пакетом, який просто використовує найсучасніший LLVM, доступний у ваших стандартних сховищах. У вашому випадку це було 2,9. Ця ж ідея стосується і sudo apt-get install clang. sudo add-apt-repository ppa:kxstudio-team/builds додає у вашу систему особистий архів пакетів або PPA. Це дозволяє отримати більше програмного забезпечення з іншого сховища або джерела програмного забезпечення. Дивіться https://help.launchpad.net/Packaging/PPA для отримання додаткової інформації. Нарешті,sudo apt-get updateповідомляє Ubuntu отримати інформацію про те, які пакунки доступні з доступних на даний момент сховищ. Ви можете подивитися на http://www.debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html для отримання додаткової інформації про управління пакетами в Debian (більшість з яких має стосуватися і Ubuntu, оскільки Ubuntu заснований на Debian).

Отже, кроки для видалення отриманих пакетів та встановлення доступних версій із точно запропонованих:

  1. Використовуйте sudo apt-get purge llvm-3.2 clang-3.2для повного видалення LLVM та клаксонів із вашої системи.
  2. (Необов’язково) Використовуйте sudo add-apt-repository --remove ppa:kxstudio-team/buildsдля видалення PPA зі своєї системи.
  3. Дотримуйтесь інструкцій за адресою https://wiki.ubuntu.com/Testing/EnableProposed, щоб увімкнути запропонований архів (справа вгорі сторінки), а також дотримуйтесь інструкцій для "Вибіркового оновлення з -пропонованого". Перша частина увімкне фактичну версію llvm-3.2пакета Ubuntu , а друга запобіжить спробі оновити все до запропонованих версій.
  4. Використовуйте sudo apt-get updateдля отримання інформації про пакунки та версії, які тепер доступні.
  5. Використовуйте sudo apt-get install llvm-3.2/precise-proposedдля установки LLVM 3.2 та використовуйте sudo apt-get install clang/precise-proposedдля встановлення Clang 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. Більш повно, це створює символічне посилання (або symlink) на llvm-config-3.2 в іншому місці, де Ubuntu буде шукати програми (детальніше: ln , FHS , PATH ). Таким чином, під час запуску "llvm-config" Ubuntu знайде симпосилання та запустить програму, на яку вона вказує ( llvm-config-3.2).
  7. Подивіться, чи зараз все складено правильно.

Сподіваємось, що це працює. Я нічого з цього не перевіряв, тому використовуйте на свій страх і ризик і т. Д. Я майже впевнений, що це не повинно нічого страшного.

EDIT: Зверніть увагу , що llvmі llvm-3.2незалежні. llvmзалежить від llvm-2.9( див. тут ), а llvm-3.2окремий ( див. залежності тут )

Також я не впевнений, чи знаєте ви про заповнення вкладки ; це може бути корисно, якщо ви шукаєте команду, але не знаєте назви (наприклад, у цьому випадку, мабуть, було б показано, що llvm-configвикликано llvm-config-3.2).


Дуже дякую! Це майже спрацювало. Єдина проблема полягає в тому, що встановлений llvm-3.2 не має llvm-config. Отже, коли я запускаю make в Halide, він повідомляє, що llvm не встановлено. Я запустив встановити llvm і тепер llvm-config - версія говорить 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

Чому llvm-config не пов'язані з llvm-config-3.2 так, як це стосується gcc? це свідомий вибір?
Янус Троельсен

@JanusTroelsen Я вважаю, що це свідомий вибір. Оскільки версія LLVM, яка була доступна в llvmпакеті для Ubuntu 12.04, була llvm-2.9, llvm-configкоманда була пов'язана llvm-configз версією з тієї ж версії, тобто llvm-config-2.9. У Ubuntu 13.04 та 13.10 llvmпакет встановлює LLVM 3.2, і я би очікував, що він встановиться llvm-config-3.2як llvm-config, що і в Ubuntu 13.10.
andyg0808
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.