Установка 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: Команда не найдена.
1 ответ
Итак, я успешно скомпилировал Halide в 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).
Итак, шаги для удаления пакетов, которые вы получили, и установки версий, доступных из точного предложения:
- использование
sudo apt-get purge llvm-3.2 clang-3.2
полностью удалить LLVM и лязг из вашей системы. - (Необязательно) Использование
sudo add-apt-repository --remove ppa:kxstudio-team/builds
удалить PPA из вашей системы. - Следуйте инструкциям на https://wiki.ubuntu.com/Testing/EnableProposed чтобы включить архив Proposed (прямо вверху страницы), а также следуйте инструкциям для "Выборочное обновление с -proposed". Первая часть включит актуальную версию Ubuntu
llvm-3.2
пакет, а второй будет препятствовать системе пытаться обновить все до предлагаемых версий. - использование
sudo apt-get update
чтобы получить информацию о том, какие пакеты и версии сейчас доступны. - использование
sudo apt-get install llvm-3.2/precise-proposed
установить LLVM 3.2 и использоватьsudo apt-get install clang/precise-proposed
установить Clang 3.0 (я думаю, что это версия, которую вы должны получить). - НОВЫЙ ШАГ: Делай
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, PATH). Таким образом, когда вы запускаете "llvm-config", Ubuntu найдет символическую ссылку и запустит программу, на которую она указывает (llvm-config-3.2
). - Посмотрите, все ли теперь правильно скомпилировано.
Надеюсь, это работает. Я не проверял ничего из этого, поэтому используйте на свой страх и риск и т. Д. Однако я уверен, что это не должно делать ничего ужасного.
РЕДАКТИРОВАТЬ: Обратите внимание, что llvm
а также llvm-3.2
независимы. llvm
зависит от llvm-2.9
( см. здесь), в то время как llvm-3.2
является отдельным ( см. зависимости здесь)
Кроме того, я не уверен, знаете ли вы о завершении вкладки; это может быть полезно, если вы ищете команду, но не совсем знаете ее имя (например, в этом случае, вероятно, было бы показано, что llvm-config
назывался llvm-config-3.2
).