Zesty поставляется с несколькими версиями Clang. Пакет clang зависит как от clang-3.9, так и от 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.
Как я могу это сделать?
Этот ответ указал мне в правильном направлении:
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
После запуска этих двух команд сборка была продолжена.
Этот ответ указал мне в правильном направлении:
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
После запуска этих двух команд сборка была продолжена.
Этот ответ указал мне в правильном направлении:
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
После запуска этих двух команд сборка была продолжена.
Этот ответ указал мне в правильном направлении:
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
После запуска этих двух команд сборка была продолжена.
Чтобы использовать принятый ответ, если у вас несколько версий 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++.
Вы можете получить эту ошибку при попытке выполнить указанные выше команды. Не стоит беспокоиться, это просто означает, что вы уже настроили clang++ на своем собственном как альтернативный вариант, поэтому вам нужно будет удалить эту альтернативу до того, как выше будет работать. Вы можете сделать это с помощью команды:
sudo update-alternatives --remove clang++ /usr/bin/clang++-3.9
Сделайте это для каждой версии clang ++, затем, после удаления всех, попробуйте еще раз.
Чтобы использовать принятый ответ, если у вас несколько версий 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++.
Вы можете получить эту ошибку при попытке выполнить указанные выше команды. Не стоит беспокоиться, это просто означает, что вы уже настроили clang++ на своем собственном как альтернативный вариант, поэтому вам нужно будет удалить эту альтернативу до того, как выше будет работать. Вы можете сделать это с помощью команды:
sudo update-alternatives --remove clang++ /usr/bin/clang++-3.9
Сделайте это для каждой версии clang ++, затем, после удаления всех, попробуйте еще раз.
Чтобы использовать принятый ответ, если у вас несколько версий 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++.
Вы можете получить эту ошибку при попытке выполнить указанные выше команды. Не стоит беспокоиться, это просто означает, что вы уже настроили clang++ на своем собственном как альтернативный вариант, поэтому вам нужно будет удалить эту альтернативу до того, как выше будет работать. Вы можете сделать это с помощью команды:
sudo update-alternatives --remove clang++ /usr/bin/clang++-3.9
Сделайте это для каждой версии clang ++, затем, после удаления всех, попробуйте еще раз.
Чтобы использовать принятый ответ, если у вас несколько версий 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++.
Вы можете получить эту ошибку при попытке выполнить указанные выше команды. Не стоит беспокоиться, это просто означает, что вы уже настроили clang++ на своем собственном как альтернативный вариант, поэтому вам нужно будет удалить эту альтернативу до того, как выше будет работать. Вы можете сделать это с помощью команды:
sudo update-alternatives --remove clang++ /usr/bin/clang++-3.9
Сделайте это для каждой версии clang ++, затем, после удаления всех, попробуйте еще раз.