Voglio installare l'ultima versione di GCC (collezione di compilatori GNU) in Linux Mint 17.3. Attualmente g++ --version
restituisce 4.8.4, mentre l'ultima versione stabile è 5.3.
Voglio installare l'ultima versione di GCC (collezione di compilatori GNU) in Linux Mint 17.3. Attualmente g++ --version
restituisce 4.8.4, mentre l'ultima versione stabile è 5.3.
Risposte:
Linux Mint è preinstallato con un pacchetto GCC. Quindi per prima cosa ti consiglio di verificare se il pacchetto è già presente nel tuo sistema digitando il seguente comando nel terminale.
apt-cache search gcc
Nel caso in cui non si disponga di tale pacchetto, utilizzare innanzitutto il seguente comando nel terminale, quindi è necessario aggiungere il seguente repository:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
quindi utilizzare il comando successivo:
sudo apt-get update
sudo apt-get install g++-4.7 c++-4.7
C'è sempre una cosa di base che dovremmo imparare; prendilo come prerequisito prima di Linux .. Impara a cercare su Google ... prova a fare ricerche più difficili ...
g++-4.7
, che è una versione inferiore rispetto a g++-4.8
, che ho già? Voglio aggiornare, non downgrade.
scarica l'ultima versione di gcc
wget http://www.netgull.com/gcc/releases/gcc-5.3.0/gcc-5.3.0.tar.bz2
usa il comando: tar -xjf
per decomprimere il file
Inserisci la directory che hai decompresso proprio ora, dì $HOME/Downloads/gcc-5.3.0
, quindi digita command:
./configure --disable-checking --enable-languages=c,c++,objc
--disable-multilib --with-system-zlib prefix=/usr/bin/gcc-5.3
Installazione delle dipendenze: build GCC richiede GMP4.2 +, MPFR 2.4.0+ e MPC 0.8.0+ e build essenziale
sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev
sudo apt-get install build-essential
installa un compilatore C ++
sudo apt-get install g++
Tipo successivo:
make
sudo make install
Modifica se ricevi ancora messaggi di errore come "zlib.h non trovato!" puoi fare quanto segue per risolverlo:
apt-get install zlib1g-dev
--disable-multilib
?
gcc/lto-compress.c:28:18: fatal error: zlib.h: No such file or directory
Non sono sicuro di quale dovrebbe essere l'ultimo, perché ci sono sempre alcune novità. Ma puoi installarne uno qualsiasi in questo modo.
Prendi gcc-8 come esempio:
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 si desidera selezionare gcc-8 / g ++ - 8 con priorità più alta (20 in questo caso), è necessario anche
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 20 --slave /usr/bin/g++ g++ /usr/bin/g++-8
A dire la verità, sono semplicemente troppo pigro per andarmene dalla 17.3 - funziona per me. Detto questo, avevo ancora bisogno di un nuovo gcc. Per compilarlo ripetutamente per diversi target ho uno script bash (vedi sotto) che modifico ed eseguo (sto scrivendo il mio sistema operativo giocattolo, quindi devo usare un gcc appositamente generato).
Cambia le directory nello script qui sotto in modo che corrispondano alle directory che hai. Conservo la versione compilata nella mia directory in modo da poter passare facilmente dalla mia versione compilata alla versione del sistema. Ti suggerisco di fare lo stesso. Devi scaricare binutils-2.23.2 così come la versione gcc che ti interessa (sto usando 7.1.0 di seguito). Inseriscili in una directory ~ / contrib insieme allo script seguente.
Potresti anche voler cambiare la riga "--enabled-languages = c" in "--enabled-languages = c, c ++, objc" - il mio progetto ha solo bisogno di C. Un'altra modifica sarebbe il valore di PLATFORM. Uso "i686-elf" ma non funzionerà per te (l'ho modificato di seguito in qualcosa che funzionerà per la piattaforma a 32 bit). Puoi provare "x86_64-linux-gnu" per una piattaforma a 64 bit.
Per i curiosi - il motivo per cui lo costruisco in questo modo è perché il processo di compilazione di gcc aveva un bug che impediva la ricostruzione nella directory dei sorgenti. Non so se questo errore esiste ancora (l'ho incontrato l'ultima volta in 4.8.0), ma l'unica soluzione era costruire esplicitamente in una directory separata se avessi mai voluto ricostruire.
[EDIT: esegue l'installazione delle dipendenze suggerite sopra da 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"