Установка llvm и clang на Ubuntu

Так что я пытаюсь установить Halide на мою Ubuntu 12.04 (64bit). Мне нужно установить llvm-3.2 и clang.

Запуск 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, я все равно получаю clang: Команда не найдена.

15
задан 18 June 2013 в 01:16

1 ответ

Хорошо, таким образом, я успешно скомпилировал Галид на 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, чтобы включить Предложенный архив (право в верхней части страницы) и также следовать инструкциям для "Выборочного обновления от - предложенный". Первая часть включит фактическую версию Ubuntu llvm-3.2 пакет и второе помешают системе пытаться обновить все до Предложенных версий.
  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 устанавливать Лязг 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. Более полностью это создает символьную ссылку (или символьная ссылка) к llvm-config-3.2 в другом месте, где Ubuntu будет искать программы (больше информации: ln, FHS, ПУТЬ). Таким образом при выполнении "llvm-конфигурации" Ubuntu найдет символьную ссылку и запустит программу, на которую она указывает (llvm-config-3.2).
  7. Посмотрите, компилирует ли все правильно теперь.

Надо надеяться, это работает. Я не протестировал ни одного из этого, таким образом используйте на Ваш собственный риск и т.д. Я вполне уверен, однако, что это не должно делать ничего ужасного.

Править: Отметьте это llvm и llvm-3.2 независимы. llvm зависит от llvm-2.9 (см. здесь), в то время как llvm-3.2 является отдельным (см. зависимости здесь),

Кроме того, я не уверен, знаете ли Вы о заполнении клавишей Tab; может быть полезно, если бы Вы ищете команду, но не вполне знаете имя (например, в этом случае, это, вероятно, показало бы это llvm-config был назван llvm-config-3.2).

9
ответ дан 18 June 2013 в 01:16

Другие вопросы по тегам:

Похожие вопросы: