Verifique sua versão atual executando gcc -v
.
Em seguida, Você quer instalar uma versão anterior.
- Para
gcc-3.4
Como esta versão está disponível nas versões mais antigas do Ubuntu, precisamos ter os repositórios apropriados para a versão. De alguma pesquisa, descobri que eles são os seguintes, que devem ser adicionados ao /etc/apt/sources.list
deb http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb-src http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main
deb-src http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main
Depois de fazer sudo apt-get update
, os novos repositórios estarão disponíveis.
Em seguida, instale o compilador necessário. Eu costumo instalar gcc
e g++
da mesma versão para interoperabilidade. Para fins gerais, é recomendado.
Por isso,
sudo apt-get install gcc-3.4 g++-3.4
2. Verificando os compiladores disponíveis
Nesse estágio, um deles terá dois conjuntos de compiladores (um para cada g++
e gcc
). Estes podem ser verificados por dpkg --list | grep compiler
,
dpkg --list | grep compiler
dpkg --list | grep compile
ii g++ 4:4.8.2-1ubuntu6 amd64 GNU C++ compiler
ii g++-3.4 3.4.6-5 amd64 The GNU C++ compiler
ii g++-4.8 4.8.4-2ubuntu1~14.04.1 amd64 GNU C++ compiler
ii gcc 4:4.8.2-1ubuntu6 amd64 GNU C compiler
ii gcc-3.4 3.4.6-5 amd64 The GNU C compiler
ii gcc-4.8 4.8.4-2ubuntu1~14.04.1 amd64 GNU C compiler
ii hardening-includes 2.5ubuntu2.1 all Makefile for enabling compiler flags for security hardening
ii libllvm3.6:amd64 1:3.6-2ubuntu1~trusty1 amd64 Modular compiler and toolchain technologies, runtime library
ii libxkbcommon0:amd64 0.4.1-0ubuntu1 amd64 library interface to the XKB compiler - shared library
ii pkg-config 0.26-1ubuntu4 amd64 manage compile and link flags for libraries
Você pode verificar o local de instalação se precisar.
Importante é a localização dos dois conjuntos de compiladores, que podem ser listados por
ls -lh /usr/bin/gcc*
lrwxrwxrwx 1 root root 7 5月 13 2016 /usr/bin/gcc -> gcc-4.8
-rwxr-xr-x 1 root root 91K 1月 4 2007 /usr/bin/gcc-3.4
-rwxr-xr-x 1 root root 758K 1月 27 2016 /usr/bin/gcc-4.8
e
ls -lh /usr/bin/g++*
lrwxrwxrwx 1 root root 7 4月 8 2014 /usr/bin/g++ -> g++-4.8
-rwxr-xr-x 1 root root 93K 1月 4 2007 /usr/bin/g++-3.4
-rwxr-xr-x 1 root root 758K 1月 27 2016 /usr/bin/g++-4.8
- Selecionando um compilador para o propósito atual (criação de um aplicativo)
Depois de ter exigido compiladores instalados, pode-se simplesmente alternar entre os compiladores. Isso é feito atualizando a lista de versões alternativas de um aplicativo. Para fazer isso, o comando update-alternative
deve ser executado com determinados parâmetros.
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.4 40 --slave /usr/bin/g++ g++ /usr/bin/g++-3.4
sudo update-alternatives --config gcc
Isso vinculará g++
a gcc
e, ao alterar somente gcc
, o g++
será alterado automaticamente.
Então, sempre que você quiser mudar o compilador, digite:
sudo update-alternatives --config gcc
Em seguida, o usuário é questionado sobre qual compilador escolher.
sudo update-alternatives --config gcc
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-4.8 60 auto mode
1 /usr/bin/gcc-3.4 40 manual mode
2 /usr/bin/gcc-4.8 60 manual mode
Press enter to keep the current choice[*], or type selection number:
Aqui você pode escolher pressionando a tecla (0,1) e pressionando enter. A mudança na versão atual selecionada pode ser verificada por gcc -v
Removendo o update-alternative
- Se você quiser manter o compilador alternativo instalado. Em seguida, basta mudar para o modo automático em
update-alternative
, que é a opção 0. - Se você quiser remover o compilador alternativo, remova o compilador como
sudo apt-get remove gcc-3.4 g++-3.4
em seguida, execute
sudo update-alternatives --config gcc
O programa update-alternatives
procurará por links e descobrirá que estão faltando e removerá automaticamente a alternativa, retornando à outra opção disponível.
sudo update-alternatives --config gcc
update-alternatives: warning: alternative /usr/bin/gcc-3.4 (part of link group gcc) doesn't exist; removing from list of alternatives
There is only one alternative in link group gcc (providing /usr/bin/gcc): /usr/bin/gcc-4.8
Nothing to configure.