clang e clang ++ não encontrados após a instalação do pacote clang-3.5

23

Depois de instalar o pacote clang-3.5 , digitar clang ou clang++ na linha de comando me fornece uma mensagem indicando em quais pacotes esses programas podem ser encontrados. Tentando executar a instalação de clang-3.5 novamente, apt estados já está instalado e na versão mais recente.

A instalação original foi feita com o comando:

sudo apt-get install clang-3.5 llvm

build-essential foi instalado anteriormente.

Alguma idéia do que pode ter acontecido?

    
por Dr. Spatula 12.02.2015 / 16:17

7 respostas

27

Está lá, mas ainda é chamado de clang-3.5.

Você pode executá-lo como clang-3.5 (ou clang++-3.5 ) ou configurar um link simbólico para ele como eu fiz (instalar o clang regular não funcionou):

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

Trabalho feio, talvez; mas pelo menos funciona por enquanto:)

    
por Johan Wendin 14.02.2015 / 20:01
9

A maneira correta de usar o clang como padrão cc e c++ é usar update-alternatives :

  

É possível que vários programas que cumprem funções iguais ou semelhantes sejam instalados em um único sistema ao mesmo tempo. Por exemplo, muitos sistemas possuem vários editores de texto instalados de uma só vez. Isto dá escolha aos usuários de um sistema, permitindo que cada um use um editor diferente, se desejado, mas torna difícil para um programa fazer uma boa escolha de editor para invocar se o usuário não especificou uma preferência particular.

Então, primeiro você precisa adicionar clang-3.5 ou clang++-3.5 como alternativas a gcc e 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

Se, a qualquer momento, você precisar voltar para gcc ou g++ , use a opção --config :

sudo update-alternatives --config c++
    
por Yan Foto 20.11.2015 / 11:52
5

No Ubuntu 15.04 você também pode instalar o pacote clang ao longo do pacote clang-x.x. Você pode digitar clang ++ e o executável correspondente deve ser encontrado.

sudo apt-get install clang
    
por tisch 20.05.2015 / 18:34
3

Adicionando à resposta do Yan Foto (e caso o seu objetivo seja obter um clang utilizável, mas não necessariamente usá-lo como cc ), você pode realmente adicionar todo o conjunto de programas de uma só vez usando

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

(Observe que o conjunto de binários que vêm com cada versão clang pode ser diferente, por exemplo, 3,6 tem clang-tblgen , 3,8 não tem).

Se você repetir isso para cada versão do clang que instalar, poderá alternar entre eles usando apenas um único comando update-alternatives .

(Enquanto isso, aparentemente, ainda há um debate em andamento sobre incluir ou não esses links com pacotes do Ubuntu: link )

    
por Latanius 15.12.2016 / 03:43
0

Crie um arquivo .bashrc no seu diretório pessoal. Digite esta linha de código.

alias clang ++="clang ++ - 3,5"

Feche seu terminal. Abra novamente. Em seguida, tente compilar seu programa novamente.

Pelo que eu posso dizer, o clang não funciona a menos que você indique a versão no nome do comando "clang ++ - 3.5". Então eu apenas aliei o nome no meu arquivo .bashrc. Então eu só tenho que digitar "clang ++".

A propósito, eu baixei o clang 3.5, então ajuste o conselho anterior para a sua versão.

    
por Digipen 14.01.2016 / 22:12
0

Se você tiver o clang instalado corretamente, outra maneira muito fácil de salvar o problema de digitar o número da versão junto com o nome do programa é usar o recurso de preenchimento automático, por exemplo (com o clang ++ - 3.5 instalado):

clang+[TAB][ENTER]

Então você só precisa digitar clang+ , apertar Tab e Enter . Funciona da mesma forma com nomes de diretórios, nomes de arquivos, etc. (Isso não ajudará, no entanto, se você tiver mais de uma versão de um programa instalado).

    
por smay 09.05.2016 / 15:46
0

Isto deve definir as update-alternatives para o clang- 4.0 se o clang- 3.8 (como no Ubuntu 16.04) estiver instalado:

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
    
por Bl00dh0und 29.05.2017 / 16:14

Tags