Как установить Clang 3.9 по умолчанию в Zesty?

Zesty поставляется с несколькими версиями Clang. Пакет clang Install clang зависит от clang-3.9 Install clang-3.9 и clang-4.0 Install clang-4.0 . Похоже, что Clang 4 используется по умолчанию:

$ clang --version
clang version 4.0.0-1ubuntu1 (tags/RELEASE_400/rc1)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

Однако мне нужно, чтобы Clang 3.9 был версией по умолчанию. Я не могу скомпилировать UnrealEngine из-за этого:

UnrealBuildTool Exception: ERROR: This version of the Unreal Engine can only be
    compiled with clang 3.9, 3.8, 3.7, 3.6 and 3.5. clang 4.0.0 may not build it -
    please use a different version.

Как мне это сделать?

5
задан 23 April 2017 в 00:43

2 ответа

Этот ответ указал на меня в правильном направлении:

sudo update-alternatives --install \
    /usr/bin/clang++ clang++ /usr/lib/llvm-3.9/bin/clang++ 100
sudo update-alternatives --install \
    /usr/bin/clang clang /usr/lib/llvm-3.9/bin/clang 100

После выполнения тех двух команд, сборка смогла продолжиться.

8
ответ дан 23 April 2017 в 10:43
  • 1
    Как я понял в других потоках, я должен записать его без $, правильно? Didn' t работа для меня с org.gnome.desktop.screensaver поддерживающими блокировку ложными gsettings набора org.gnome.desktop.screensaver поддерживающих блокировку ложных gsettings набора gsettings $ устанавливает org.gnome.desktop.screensaver поддерживающий блокировку ' false' – Jonathan Hoffmann 9 April 2019 в 19:31

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

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

sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.9 100 \
   --slave /usr/bin/clang++ clang++ /usr/bin/clang++-3.9

Конечно, вы можете сделать это для других версий:

sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-4.0 100 \
   --slave /usr/bin/clang++ clang++ /usr/bin/clang++-4.0

sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-5.0 100 \
   --slave /usr/bin/clang++ clang++ /usr/bin/clang++-5.0

Чтобы переключать версии, вы просто набираете:

sudo update-alternatives --config clang

Введите выбор, и clang, и clang++ будут автоматически переключены на одни и те же версии.

Та же идея применима к GCC, если у вас также есть несколько версий этого, вы можете использовать этот метод для настройки gcc и g++.

Ошибки:

update-альтернативы: ошибка: альтернатива clang ++ не может быть подчиненной clang: это главная альтернатива

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

sudo update-alternatives --remove clang++ /usr/bin/clang++-3.9

Сделайте это для каждой версии clang ++, затем, удалив их все, попробуйте снова.

Источники:

0
ответ дан 23 April 2017 в 00:43

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

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