Como instalar o último lançamento estável do GCC no Linux Mint?

7

Eu quero instalar a versão mais recente do GCC (coleção de compiladores GNU) no Linux Mint 17.3. Atualmente g++ --version retorna 4.8.4, enquanto a última versão estável é 5.3.

    
por becko 27.03.2016 / 10:18

3 respostas

8

Seu Linux Mint vem pré-instalado com um pacote GCC. Então, primeiro eu recomendo que você verifique se o pacote já está presente no seu sistema digitando o seguinte comando no terminal.

apt-cache search gcc

Caso você não tenha esse pacote, use o seguinte comando no terminal Primeiro você adiciona o seguinte repositório:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

use o próximo comando:

sudo apt-get update
sudo apt-get install g++-4.7 c++-4.7

Sempre há algo básico que devemos aprender; tome como pré-requisito antes do linux Aprenda a pesquisar ... tente fazer uma pesquisa mais difícil ...

    
por 27.03.2016 / 11:10
2

faça o download da versão mais recente do gcc

wget http://www.netgull.com/gcc/releases/gcc-5.3.0/gcc-5.3.0.tar.bz2

use o comando: tar -xjf para descompactar o arquivo

Digite o diretório que você descompactou agora, digamos em $HOME/Downloads/gcc-5.3.0 , depois digite command:

./configure --disable-checking --enable-languages=c,c++,objc 
--disable-multilib --with-system-zlib prefix=/usr/bin/gcc-5.3

Instalação de dependência: construir GCC requer GMP4.2 +, MPFR 2.4.0+ e MPC 0.8.0+ e construir essencial

sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev
sudo apt-get install build-essential

instale um compilador C ++

sudo apt-get install g++

Próximo tipo:

make 
sudo make install

Editar  se você ainda receber mensagens de erro como "zlib.h não encontrado!" você pode fazer o seguinte para corrigi-lo:

apt-get install zlib1g-dev
    
por 27.03.2016 / 11:30
0

Verdade seja dita que eu sou simplesmente com preguiça de sair da 17,3 - isso funciona para mim. Dito isto, eu ainda precisava de um novo gcc. Para compilá-lo repetidamente para diferentes alvos Eu tenho um script bash (veja abaixo) que eu modifico e executo (estou escrevendo meu próprio sistema operacional de brinquedos, portanto, eu tenho que usar um gcc especialmente gerado).

Altere os diretórios no script abaixo para corresponder aos diretórios que você possui. Eu mantenho a versão compilada em meu próprio diretório para que eu possa alternar facilmente entre a minha versão compilada e a versão do sistema. Eu sugiro que você faça o mesmo. Você precisa baixar o binutils-2.23.2, assim como a versão do gcc que você está interessado (estou usando o 7.1.0 abaixo). Coloque-os em um diretório ~ / contrib junto com o script abaixo.

Você também pode querer mudar a linha "--enabled-languages = c" para "--enable-languages = c, c ++, objc" - meu projeto só precisa de C. Outra mudança seria o valor de PLATFORM. Eu uso "i686-elf", mas isso não vai funcionar para você (eu mudei abaixo para algo que vai funcionar para a plataforma de 32 bits). Você pode tentar "x86_64-linux-gnu" para uma plataforma de 64 bits.

Para os curiosos - o motivo pelo qual eu construí isso é porque o processo de compilação do gcc costumava ter um bug que impedia a reconstrução no diretório de origem. Eu não sei se esse bug ainda existe (eu encontrei pela última vez em 4.8.0), mas a única solução foi explicitamente construir em um diretório separado, se você quisesse reconstruir.

Espero que isso ajude.

[EDIT: Execute a instalação das dependências sugeridas acima por GAD3R]

#!/bin/bash

function die() {
   echo $1
   exit 127
}


export PREFIX=/home/lelanthran/opt/cross
export TARGET=i686-linux-gnu
export PATH="$PREFIX/bin:$PATH"

pushd $PWD &> /dev/null
mkdir -p build-binutils
cd build-binutils
../binutils-2.23.2/configure \
   --target=$TARGET \
   --prefix="$PREFIX" \
   --with-sysroot \
   --disable-nls \
   --disable-werror || die "binutils/config error"
make           || die "binutils/make error"
make install   || die "binutils/make install error"

popd &> /dev/null

pushd $PWD &> /dev/null
mkdir -p build-gcc-7.1.0
cd build-gcc-7.1.0
../gcc-7.1.0/configure \
   --target=$TARGET \
   --prefix="$PREFIX" \
   --disable-nls \
   --enable-languages=c \
   --without-headers || die "gcc/config error"
make all-gcc                  || die "gcc/make all-gcc error"
make all-target-libgcc        || die "gcc/make all-target-libgcc error"
make install-gcc              || die "gcc/make install-gcc error"
make install-target-libgcc    || die "gcc/make install-target-libgcc error"
    
por 01.06.2017 / 22:58