O Zesty vem com várias versões do Clang. O pacote clang depende tanto do clang-3.9 quanto do clang-4.0 . Parece que o Clang 4 é usado por padrão:
$ clang --version
clang version 4.0.0-1ubuntu1 (tags/RELEASE_400/rc1)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
No entanto, preciso que o Clang 3.9 seja a versão padrão. Não consigo compilar o UnrealEngine por causa disso:
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.
Como posso fazer isso?
Para desenvolver a resposta aceita, se você tiver várias versões do clang, pode ser do seu interesse torná-lo
clang++
dependenteclang
para que tudo o que você precise fazer seja atualizar o clang para uma versão diferente e a versão do clang ++ siga o exemplo.Você pode fazer isso usando a
--slave
opção deupdate-alternatives
. Então algo assim:Claro que você pode fazer isso para outras versões:
Para trocar de versão, basta digitar:
Insira uma seleção e ambos
clang
eclang++
serão automaticamente alternados para as mesmas versões.A mesma ideia se aplica
GCC
se você também tiver várias versões disso, você pode usar este método para configurargcc
eg++
.Erros:
Você pode receber esse erro ao tentar executar os comandos acima. Não se preocupe, isso significa apenas que você já configurou
clang++
por conta própria como uma alternativa, então você precisará remover essa alternativa antes que o acima funcione. Você pode fazer isso com o comando:Faça isso para cada versão do clang++ e, depois de removê-los, tente novamente.
Fontes:
Esta resposta me apontou na direção certa:
Depois de executar esses dois comandos, a compilação pôde continuar.