Quero instalar a versão mais recente do GCC (coleção de compilador GNU) no Linux Mint 17.3. Atualmente g++ --version
retorna 4.8.4, enquanto a última versão estável é 5.3.
Quero instalar a versão mais recente do GCC (coleção de compilador GNU) no Linux Mint 17.3. Atualmente g++ --version
retorna 4.8.4, enquanto a última versão estável é 5.3.
Respostas:
Seu Linux Mint vem pré-instalado com um pacote GCC. Então, primeiro eu recomendaria 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 esteja tendo nenhum desses pacotes, use o seguinte comando no terminal e adicione o seguinte repositório:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
então 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 isso como pré-requisito antes do linux .. Aprenda a pesquisar no Google ... tente fazer pesquisas mais difíceis ...
g++-4.7
, que é uma versão inferior à g++-4.8
que eu já tenho? Quero atualizar, não fazer o downgrade.
baixe a 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, $HOME/Downloads/gcc-5.3.0
digite e digite o comando:
./configure --disable-checking --enable-languages=c,c++,objc
--disable-multilib --with-system-zlib prefix=/usr/bin/gcc-5.3
Instalação de dependência: o build GCC requer GMP4.2 +, MPFR 2.4.0+ e MPC 0.8.0+ e build essential
sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev
sudo apt-get install build-essential
instalar um compilador C ++
sudo apt-get install g++
Próximo tipo:
make
sudo make install
Edite se você ainda receber a mensagem de erro como "zlib.h não encontrado!" você pode fazer o seguinte para corrigi-lo:
apt-get install zlib1g-dev
--disable-multilib
?
gcc/lto-compress.c:28:18: fatal error: zlib.h: No such file or directory
Não sei bem o que deve ser o último, porque sempre há novidades. Mas você pode instalar qualquer um deles dessa maneira.
Tome o gcc-8 como exemplo:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-8 g++-8
gcc-8 --version
se você quiser selecionar gcc-8 / g ++ - 8 com prioridade mais alta (20 neste caso), também precisará
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 20 --slave /usr/bin/g++ g++ /usr/bin/g++-8
Verdade seja dita, eu sou simplesmente com preguiça de sair do 17,3 - funciona para mim. Dito isto, eu ainda precisava de um novo GCC. Para compilá-lo repetidamente para diferentes destinos, tenho um script bash (veja abaixo) que modifico e executo (estou escrevendo meu próprio SO de brinquedo, portanto, 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 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, bem 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 alterar a linha "--enabled-languages = c" para "--enabled-languages = c, c ++, objc" - meu projeto precisa apenas de C. Outra alteração seria o valor de PLATAFORMA. Eu uso o "i686-elf", mas isso não funcionará para você (eu mudei abaixo para algo que funcionará para a plataforma de 32 bits). Você pode tentar "x86_64-linux-gnu" para uma plataforma de 64 bits.
Para os curiosos - a razão pela qual construí-lo dessa maneira é porque o processo de construção do gcc costumava ter um bug que impedia a reconstrução no diretório de origem. Não sei se esse bug ainda existe (eu o encontrei pela última vez na 4.8.0), mas a única solução alternativa foi criar explicitamente em um diretório separado, se você quiser reconstruir.
[EDIT: Execute a instalação das dependências sugeridas acima pelo 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"