лязг и лязг ++ не найденный после установки лязга 3,5 пакета

После установки clang-3.5 пакет, вводя clang или clang++ на командной строке дает мне сообщение, указывающее, который упаковывает те программы, может быть найден в. Попытка выполнить установку clang-3.5 снова, способные состояния это уже установлено и в последней версии.

Исходная установка была сделана с командой:

sudo apt-get install clang-3.5 llvm

build-essential был установлен ранее.

Какие-либо идеи о том, что, возможно, произошло?

26
задан 12 February 2015 в 08:17

8 ответов

Это там, но это все еще назвало лязг 3.5.

можно или выполнить его как clang-3.5 (или clang++-3.5) или установить символьную ссылку на него как, я сделал (установка регулярного лязга не работала):

sudo ln -s /usr/bin/clang-3.5 /usr/bin/clang
sudo ln -s /usr/bin/clang++-3.5 /usr/bin/clang++

Ужасное обходное решение, возможно; но по крайней мере это работает на данный момент:)

30
ответ дан 23 November 2019 в 01:07

Надлежащий способ использовать лязг в качестве Вашего значения по умолчанию cc и c++ состоит в том, чтобы использовать update-alternatives :

для нескольких программ, выполняющих те же или подобные функции возможно быть установленным в единой системе одновременно. Например, много систем имеют несколько текстовых редакторов, установленных сразу. Это дает выбор пользователям системы, позволяя каждому использовать различного редактора при желании, но мешает программе делать хороший выбор редактора, чтобы вызвать, если пользователь не определил конкретное предпочтение.

настолько же сначала необходимо добавить clang-3.5 или clang++-3.5 как альтернативы, например, gcc и g++:

sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang-3.5 100
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-3.5 100

, Если когда-либо необходимо переключиться назад на gcc или g++, можно использовать --config опция:

sudo update-alternatives --config c++
12
ответ дан 23 November 2019 в 01:07

На Ubuntu 15.04 можно также установить пакет лязга вдоль пакета лязга-x.x. Можно тогда ввести лязг ++, и согласно исполняемому файлу должен быть найден.

sudo apt-get install clang
5
ответ дан 23 November 2019 в 01:07

Добавление к ответу Yan Foto (и на всякий случай Ваша цель состоит в том, чтобы получить применимое clang, но не обязательно использовать его в качестве cc), можно на самом деле добавить, весь набор программ сразу с помощью

sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.8 380 \
--slave /usr/bin/clang++ clang++ /usr/bin/clang++-3.8 \
--slave /usr/bin/clang-check clang-check /usr/bin/clang-check-3.8 \
--slave /usr/bin/clang-query clang-query /usr/bin/clang-query-3.8 \
--slave /usr/bin/clang-rename clang-rename /usr/bin/clang-rename-3.8

(Обратите внимание, что набор двоичных файлов, которые идут с каждой версией лязга, мог бы отличаться, например, 3.6 имеет clang-tblgen, 3.8 не делает.)

при повторении этого для каждой версии лязга, Вы устанавливаете, Вы сможете переключиться между ними использующий просто сингл update-alternatives команда.

(Между тем, по-видимому, существуют все еще продолжающиеся дебаты о том, включать ли эти ссылки с пакетами Ubuntu или нет: https://bugs.launchpad.net/ubuntu / + source/llvm-3.1 / + ошибка/991493 )

4
ответ дан 23 November 2019 в 01:07

Создайте .bashrc файл в своем корневом каталоге. Введите эту строку кода.

лязг псевдонима ++ = "лязгают ++-3.5"

Близко Ваш терминал. Откройте его снова. Затем попытайтесь скомпилировать свою программу снова.

Из того, что я могу сказать, лязг не будет работать, если Вы не заявите, что версия на название команды "лязгает ++-3.5". Таким образом, я просто исказил имя в своем .bashrc файле. Таким образом, я только должен ввести "лязг ++".

По тому, как я загрузил лязг 3.5, поэтому скорректируйте предыдущий совет своей версии.

0
ответ дан 23 November 2019 в 01:07

Если у Вас есть лязг, правильно установленный, другой очень простой способ избавить Вас от необходимости ввести номер версии наряду с названием программы состоит в том, чтобы использовать функцию автозавершения, например (имеющий лязг ++-3.5 установленных):

clang+[TAB][ENTER]

, Таким образом, Вы только имеете к типу clang+, поражаете Вкладку , и Входят . Работают тот же путь с названиями каталогов, имен файлов, и т.д. (Это не поможет Вам, однако, если у Вас будет больше чем одна версия установленной программы.)

0
ответ дан 23 November 2019 в 01:07

Это должно установить альтернативы обновления для лязга - 4.0 , если лязг - 3.8 (как на Ubuntu 16.04) установлен:

sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-4.0 100
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-4.0 100
sudo update-alternatives --install /usr/bin/clang-apply-replacements clang-apply-replacements /usr/bin/clang-apply-replacements-4.0 100
sudo update-alternatives --install /usr/bin/clang-check clang-check /usr/bin/clang-check-4.0 100
sudo update-alternatives --install /usr/bin/clang-query clang-query /usr/bin/clang-query-4.0 100
sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-4.0 100
sudo update-alternatives --install /usr/bin/scan-build scan-build /usr/bin/scan-build-4.0 100
sudo update-alternatives --install /usr/bin/scan-view scan-view /usr/bin/scan-view-4.0 100
0
ответ дан 23 November 2019 в 01:07

Добавление к ответу Johann Wendin о symlinking. В корневая оболочка можно связать все различные инструменты лязга сразу:

, например,

find /usr/bin/ -name clang*  | sed -E 's/^(\/usr\/bin\/.*)(\-[0-9]*)$/ln -s -v \1\2 \1/' | xargs -d '\n' -n 1 bash -c

и затем повторяются для:

llc-*
lld-*
lldb-*
llvm-*

Затем все должно быть связано, не только маленький выбор. (Возможно, я все еще забыл что-то).

Это найдет все файлы согласно шаблону в/usr/bin, удалит любые запаздывающие числа (-8 или-9 или даже-10) и затем создаст символьные ссылки на каждом.

0
ответ дан 23 November 2019 в 01:07

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

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