llvm e instalação clang no Ubuntu

13

Estou tentando instalar o Halide no meu Ubuntu 12.04 (64 bits). Eu preciso llvm-3.2 e clang para ser instalado.

A execução de sudo apt-get install llvm-3.2 termina com "pacote não encontrado".

Experimentar sudo apt-get install llvm ou sudo apt-get install clang instala 2,9 versões. O Google me ajudou com isso

sudo add-apt-repository ppa:kxstudio-team/builds
sudo apt-get update

Agora, sudo apt-get install llvm-3.2 clang-3.2 funciona. Mas quando eu corro make na pasta Halide eu ainda fico com o clang: Comando não encontrado.

    
por Andrei Ivanov 17.06.2013 / 23:16

1 resposta

9

Ok, então eu compilei com sucesso o Halide no Ubuntu 13.04 instalando llvm , clang e build-essential . Meu único palpite quanto ao seu problema é que o LLVM ou o clang do PPA que você instalou pode não ter funcionado corretamente. Parece que é realmente possível obter o LLVM 3.2 do Ubuntu para 12.04, através do que é conhecido como o arquivo "proposto". Você pode tentar limpar o LLVM que você tem e instalá-lo de "proposto". Vou explicar como fazer isso abaixo. Desde que você mencionou que você é novo no Ubuntu (na versão original da questão), vou explicar primeiro o que cada comando que você já usou faz o melhor que posso.

Portanto, sudo apt-get install llvm-3.2 tenta instalar o pacote chamado llvm-3.2 dos atuais repositórios ativados em seu sistema. No seu caso, não foi encontrado, então o comando falhou. sudo apt-get install llvm instalou o pacote llvm , que é provavelmente um pacote especial que usa apenas o LLVM mais atualizado disponível em seus repositórios padrão. No seu caso, isso foi 2.9. Mesma ideia aplica-se a sudo apt-get install clang . %código% adiciona o que é chamado de arquivo de pacotes pessoais ou PPA ao seu sistema. Isso permite que você obtenha mais software de outro repositório , ou fonte de software. Consulte o link para obter mais informações. Finalmente, sudo add-apt-repository ppa:kxstudio-team/builds diz ao Ubuntu para obter informações sobre quais pacotes estão disponíveis nos repositórios atualmente disponíveis. Você pode dar uma olhada no link para obter mais informações sobre o gerenciamento de pacotes em Debian (a maioria dos quais deve se aplicar ao Ubuntu também, já que o Ubuntu é baseado no Debian).

Assim, os passos para remover os pacotes que você tem e instalar as versões disponíveis a partir de propostas precisas:

  1. Use sudo apt-get update para remover completamente o LLVM e o clang do seu sistema.
  2. (Opcional) Use sudo apt-get purge llvm-3.2 clang-3.2 para remover o PPA do seu sistema.
  3. Siga as instruções no link para ativar o Arquivo proposto (logo no topo da página), e também siga as instruções para "Atualização seletiva de -proposto". A primeira parte permitirá a versão real do Ubuntu do pacote sudo add-apt-repository --remove ppa:kxstudio-team/builds , e a segunda evitará que o sistema tente atualizar tudo para as versões propostas.
  4. Use llvm-3.2 para inserir as informações sobre quais pacotes e versões estão disponíveis agora.
  5. Use sudo apt-get update para instalar o LLVM 3.2 e use sudo apt-get install llvm-3.2/precise-proposed para instalar o Clang 3.0 (acho que essa é a versão que você deve obter).
  6. NEW STEP: Do sudo apt-get install clang/precise-proposed para fazer o sistema tratar sudo ln -s /usr/bin/llvm-config-3.2 /usr/local/bin/llvm-config (que é o llvm-config-3.2 que veio com llvm-config ) como llvm-3.2 . Mais completamente, isso cria um link simbólico (ou link simbólico) para llvm-config-3.2 em outro lugar onde o Ubuntu irá procurar programas (mais informações: ln , FHS , PATH ). Assim, quando você executar "llvm-config", o Ubuntu encontrará o symlink e executará o programa para o qual ele aponta ( llvm-config ).
  7. Veja se tudo é compilado corretamente agora.

Espero que isso funcione. Eu não testei nada disso, então use a seu próprio risco, etc. Tenho certeza, no entanto, que não deve fazer nada terrível.

EDITAR: Observe que llvm-config-3.2 e llvm são independentes. llvm-3.2 depende de llvm ( veja aqui ), enquanto llvm-2.9 é separado ( veja dependências aqui )

Além disso, não tenho certeza se você sabe sobre a conclusão da guia ; pode ser útil se você estiver procurando por um comando, mas não sabe bem o nome (por exemplo, nesse caso, provavelmente teria mostrado que llvm-3.2 foi chamado llvm-config ).

    
por andyg0808 18.06.2013 / 08:07

Tags