Compilando o gcc 13.2.0 no Ubuntu 22.04 LTS
Se você acompanha meu Twitter, já está sabendo que comecei uma sequência de vídeos no Youtube (https://auladec.nilo.pro.br/) sobre a linguagem C para quem já sabe Python. Se você quer aprender Python, não deixe de visitar o site do meu livro para mais informações (https://python.nilo.pro.br).
Nestes vídeos, eu peço para todo mundo usar o gcc versão 13.2.0 que está disponível a partir do Ubuntu 23.10. O Ubuntu 24.04 LTS deve sair até o fim do mês, mas pode atrasar e fica a pergunta: como fazer para atualizar o gcc ainda no Ubuntu 22.04?
Eu achei duas alternativas:
- Adicionar uma ppa de testes e instalar o gcc 13.1 via apt.
- Compilar diretamente dos fontes, mais demorada, mas que traz a versão que queremos.
Para adicionar a ppa (Personal Package Archives), digite:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-13
Depois disso, o compilador pode ser chamado com:
gcc-13 --version
Que deve retornar algo como:
$ gcc-13 --version
gcc-13 (Ubuntu 13.1.0-8ubuntu1~22.04) 13.1.0
Copyright (C) 2023 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.
Como adicionamos uma ppa de testes, recomendo removê-la no final do processo:
sudo add-apt-repository -r ppa:ubuntu-toolchain-r/test
Mas veja que a mais versão mais recente do gcc
na ppa é a 13.1 e não a 13.2.
A outra alternativa dá um pouco mais de trabalho, mas o resultado é melhor. Atenção: a compilação demorou mais de 50 minutos (precisa também de 8 GB de disco livre) na minha máquina virtual, você foi avisado :-D
Esses passos foram achados no artigo: https://www.dedicatedcore.com/blog/install-gcc-compiler-ubuntu/ que você pode ler para ter acesso a mais detalhes.
sudo apt install build-essential
sudo apt install libmpfr-dev libgmp3-dev libmpc-dev -y
wget http://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.gz
tar -xf gcc-13.2.0.tar.gz
cd gcc-13.2.0
./configure -v --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --prefix=/usr/local/gcc-13.2.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib --program-suffix=-13.2.0
make -j3
sudo make install
/usr/local/gcc-13.2.0/bin/gcc-13.2.0 --version
A linha make -j3
pode ser adaptada para um número maior, caso você tenha vários processadores.
Veja que usamos sudo em várias partes, ou seja, você precisa ser o root do sistema para poder instalar novos pacotes.
No final, teste o novo compilador com:
/usr/local/gcc-13.2.0/bin/gcc-13.2.0 --version
que deve resultar em:
$ /usr/local/gcc-13.2.0/bin/gcc-13.2.0 --version
gcc-13.2.0 (GCC) 13.2.0
Copyright (C) 2023 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.
Para ficar mais fácil de usar, digite:
sudo ln -s /usr/local/gcc-13.2.0/bin/gcc-13.2.0 /usr/bin/gcc-13.2.0
que cria um link para o /usr/bin, desta forma, você poderá chamar o compilador apenas com:
$ gcc-13.2.0 --version
gcc-13.2.0 (GCC) 13.2.0
Copyright (C) 2023 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.
Se você ainda não conhece o site das aulas de c, visite https://auladec.nilo.pro.br/. Você encontrará vários links para cada aula, mas também pro canal do Youtube e pros meus outros sites.