Como instalar o gcc-4.8

94

Eu verifiquei a versão do gcc no meu sistema.

Está atualmente em 4.6.3. Eu li que o gcc-4.8 saiu.

Eu tentei os seguintes comandos sem sucesso:

sudo apt-get install gcc (gcc is already the newest version)
sudo apt-get install gcc-4.8 (unable to locate package)

Alguém sabe como instalar este pacote no 12.04?

MdT
fonte
A resposta de @ maggotbrain funcionou para mim, embora eu tenha que adicionar: sudo apt-get install gcc-multilib enquanto eu estava enfrentando esse problema: superuser.com/questions/432202/make-fails-compiling-gcc
skillman
2
Nota para futuros googlers: Se você receber uma mensagem de erro como referência indefinida a `lexer_line ', é devido à falta de ferramentas: bison e flex sudo apt-get install bison sudo apt-get install flex conforme indicado aqui: http: // stackoverflow. com / questions / 4262531 / problem-building-gcc-4-6
virtualPN

Respostas:

119

O GCC-4.8 está disponível para 12.04 Precise agora?

Atualização : a partir de 6/05/2013, atualmente há uma versão do gcc 4.8.1 para 12.04 (precisa) disponível em https://launchpad.net/~ubuntu-toolchain-r/+archive/test .

A resposta curta é: gcc-4.8atualmente está disponível para 12.04 (Precise) por meio do PPA da cadeia de ferramentas ou compilando a fonte (veja detalhes abaixo).

Anúncio de Lançamento

O anúncio para o lançamento do gcc-4.8 foi feito em 22 de março, então você provavelmente ainda não o verá em um repositório oficial.

No entanto, parece que o Launchpad tem um PPA disponível para as compilações de teste da cadeia de ferramentas que incluem o gcc-4.8, aqui: https://launchpad.net/~ubuntu-toolchain-r/+archive/test

De acordo com o changelog e a lista de pacotes , existem debs para i386, amd64, arm e powerpc e foram construídos contra o raring 13.04.

A versão mais recente disponível do gcc, para 12.04, é 4.8.1 e está disponível no PPA da cadeia de ferramentas.

Incluindo o PPA da cadeia de ferramentas / teste:

Para adicionar o PPA ao seu sistema, abra um terminal ( Ctrl+ Alt+ t) e execute os seguintes comandos:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50

Você também será solicitado a instalar vários pacotes sugeridos. Estes pacotes são recomendados, mas opcionais, para a instalação do gcc-4.8.

Quais recursos do C ++ estão disponíveis no gcc-4.8 que não estão disponíveis no gcc-4.7.2?

  • De acordo com o GNU.ORG , o gcc-4.7, suporta vários recursos do C ++ 11 .
  • Desde o lançamento do gcc-4.8, o gcc-4.7 não suporta 8 de 64 recursos (consulte Suporte ao C ++ 0x / C ++ 11 no GCC )

  • Esses recursos são:

    Language Features
    - Rvalue references for *this
    - Generalized attributes
    - Alignment support
    - Inheriting constructors
    Concurreny
    - Bidirectional Fences
    - Memory model
    - Abandoning a process and at_quick_exit
    - Thread-local storage 
    
  • Para obter uma lista completa das alterações no gcc-4.8, consulte o Changelist

Eu preciso desses recursos do gcc no 12.04 Precise, agora. Como posso obtê-los?

Edifício GCC-4.8 a partir da fonte:

Se você precisa do gcc-4.8 no 12.04 agora, sua única opção é compilá-lo a partir do código-fonte .

Leia as Perguntas frequentes sobre a instalação do GCC antes da instalação.

Você pode baixar o gcc-4.8 em um dos sites-espelho do gnu.org ou diretamente no servidor SVN .

Aqui está um exemplo de etapas para compilar a partir da fonte (veja aqui para obter detalhes adicionais). Observe que elas podem variar dependendo do seu sistema e preferências.

  1. Faça o download do código fonte

    • Crie um diretório de construção ( mkdir gcc-build && cd gcc-build)
    • Faça o download do arquivo de origem: wget http://www.netgull.com/gcc/releases/gcc-4.8.0/gcc-4.8.0.tar.bz2(ajuste este comando para usar um site espelho apropriado .
    • Descompacte o arquivo ( tar -xvjf <file name>)
  2. Instale algumas bibliotecas adicionais ( sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev)

  3. Compile a fonte: ./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0
  4. Executar make(isso levará algum tempo para ser concluído. Vá fazer um café ou assar alguns biscoitos. ;-))
  5. Instale o código: sudo make install

Após a conclusão desse processo, execute o comando gcc --versionpara verificar se a instalação foi concluída com êxito. Você deve ver algo semelhante à seguinte saída:

maggotbrain@foucault:~$ gcc --version
gcc (Linaro 4.8.0) 4.8.0
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Conclusão: Agradeça a todas as pessoas que fornecem backports Ubuntu fáceis de instalar para você. Dê a eles alguns dos biscoitos que você assou durante a execução make. ;-)

Kevin Bowen
fonte
Excelente resposta, exceto:E: Unable to locate package gcc-4.8
John Dibling 04/04
2
Instalar as bibliotecas adicionais não foi suficiente para mim, mas a execução foi ./contrib/download_prerequisites.shcorrigida (em stackoverflow.com/questions/9253695/… ).
Gauthier
7
Nota: Eu também tive que instalar o pacote g ++ - 4.8 (além do gcc-4.8) para poder compilar o código C ++. Caso contrário, eu estava recebendo o erro de compilação: gcc: error trying to exec 'cc1plus': execvp: No such file or directory 4.8.
Boris Dalstein #
Eu era capaz de instalar com êxito gcc4.8 em Precise
Homunculus Reticulli
1
@ John Dibling - Com certeza, o método exposto instala os arquivos, no entanto, você nunca cria nenhum pacote nem instala nenhum ... portanto, não é possível encontrá-lo (eles) :-). Bem, existe uma maneira rápida de construir automaticamente os pacotes usando a pasta debian do link . Eu fiz isso com sucesso para outros pacotes. Esta solução instalará todos os pacotes relacionados, incluindo g ++, etc ...
Antonio
1

Portanto, a resposta acima funciona, pelo menos para a instalação manual. Embora mesmo depois sudo make install, a execução gccainda execute a versão 4.6.3. Mesmo tentando gcc-4.8ou gcc-4.8.0não funciona. Correr /app/gcc/4.8.0/bin/gccparece ser a única coisa que funciona para mim. Quero dizer, é meio idiota, mas pelo menos funciona.

user149393
fonte
5
[: facepalm:] Antes de chamar as coisas de "coxas", talvez você deva atualizar o conhecimento dos sistemas operacionais. Você pode começar lendo o conceito de PATH: en.wikipedia.org/wiki/PATH_(variable)
pszilard
1
Claro que também, como você não instala nenhum pacote com o script DEBIAN / postinst, deve definir manualmente a versão padrão a ser usada pelo seu sistema através do cmd update-alternative . linha ... Se você usou --prefix = / usr não há necessidade de se meter com PATH ...
Antonio