LINUX.ORG.RU

LLVM невидим

 ,


1

0

Пытаюсь установить на Ubuntu 14.04 llvm 8, но программы его не видят

Делал всё по этой инструкции https://linuxhint.com/install-llvm-ubuntu/ только в apt добавил эти строки

deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-8 main
deb-src http://apt.llvm.org/trusty/ llvm-toolchain-trusty-8 main

Получил ключ, обновил и ввёл команду:

apt-get install libllvm-8-ocaml-dev libllvm8 llvm-8 llvm-8-dev llvm-8-doc llvm-8-examples llvm-8-runtime

Написало что успешно установилось, проверил через llvm-config-8 --version, вывело версию 8.0.1, а когда пишу просто llvm-config --version, пишет 3.4. То есть все программы продолжают обнаруживать старую версию. Что делать? Удалял уже старую, новая остаётся но не обнаруживается, потому что пакет там с цифрой и тире наверное, а как это всё поместить вместо старой версии под обычным названием пакета (без цифр версии в конце) я не знаю



Последнее исправление: gradle (всего исправлений: 2)

Надо было добавить репу от Ubuntu:eoan ниже в список apt sources и в настройках назначить приоритет нового репозитория (старые не заменяй), затем обновить apt, и поставить llvm8-dev если для сборки программ, которые зависят от хедеров этого llvm (обычно такие проги сами тянут llvm и собирают его под себя, чем жутко бесят).

menangen ★★★★★
()
Последнее исправление: menangen (всего исправлений: 1)
Ответ на: комментарий от menangen

Не совсем понял, при чём тут eoan, у меня же trusty. И как это заставит программы использовать новую версию вместо 3.4?

gradle
() автор топика

Попробуй update-alternatives. Возможно нужны какие-то ключи, загугли.

anonymous
()
Ответ на: комментарий от menangen

Зачем? Даже если пакеты из eoan заработают, они по прежнему не будут использоваться! У меня почему-то всегда используется старая версия, а новая не видна нигде

gradle
() автор топика
Ответ на: комментарий от menangen

Откуда качать? Из toolchain? Если из toolchain то они не будут использоваться, программа будет видеть только старую версию без номера версии в названии пакета (3.4), а остальные (например пакет-8) не будут использоваться

gradle
() автор топика

Альтернативный тулчейн надо указывать отдельно. Смирись.

Расскажи ещё, пожалуйста, а зачем тебе 14.04?

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Пакеты от eoan не заработают на 14.04, там libc старый.

14.04 стоит в системе exagear, менять дистрибутив нельзя чтобы не нарушить работу программы

gradle
() автор топика
Ответ на: комментарий от gradle

Я тебе не про eoan. Я про префикс.

Владимир

anonymous
()
Ответ на: комментарий от gradle

в системе exagear

Ясно. Ну вам всего хорошего там, здоровья, счастья, терпения.

Могли бы его как-нибудь отдельно. Или сбандлить с зависимостями. Ну вы понимаете.

anonymous
()

Сделать символические ссылки на бинари. Пример:

ln -s /usr/bin/ld.lld-8 /usr/local/bin/ld
Потом не позабыть проверить\добавить в PATH:
PATH=$PATH:/usr/local/bin

После этого увидеть желаемое:

ld -v
LLD 8.0.1 (compatible with GNU linkers)
По аналогии с этим «подсовываем» в систему нужные бинарники под нужными именами для совместимости.

microbash
()
Ответ на: комментарий от microbash

Я уже сделал так, удалил llvm 3.4 и создал симлинки без версии для каждого бинарника, и всё заработало

gradle
() автор топика

llvm-config –version, пишет 3.4

Скорее всего там симлинк, ибо сейчас llvm-config нумеруется сгласно версии (т.е. должно быть llvm-config-8)

Покажи выхлоп

readlink -e $(which llvm-config)

ls -l /etc/alternatives/llvm-config
KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.