Je veux installer la dernière version de GCC (collection de compilateurs GNU) dans Linux Mint 17.3. g++ --version
Renvoie actuellement la version 4.8.4, tandis que la dernière version stable est la 5.3.
Je veux installer la dernière version de GCC (collection de compilateurs GNU) dans Linux Mint 17.3. g++ --version
Renvoie actuellement la version 4.8.4, tandis que la dernière version stable est la 5.3.
Réponses:
Votre Linux Mint est préinstallé avec un package GCC. Donc, je vous recommande d'abord de vérifier si le package est déjà présent dans votre système en tapant la commande suivante dans le terminal.
apt-cache search gcc
Dans le cas où vous ne disposez pas d'un tel package, utilisez la commande suivante dans le terminal, vous avez d'abord ajouté le référentiel suivant:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
puis utilisez la commande suivante:
sudo apt-get update
sudo apt-get install g++-4.7 c++-4.7
Il y a toujours quelque chose de fondamental que nous devons apprendre; prenez-le comme condition préalable avant linux .. Apprenez à googler ... essayez de faire plus de recherche difficile ...
g++-4.7
, qui est une version inférieure à celle que g++-4.8
j'ai déjà? Je souhaite mettre à niveau, pas rétrograder.
téléchargez la dernière version de gcc
wget http://www.netgull.com/gcc/releases/gcc-5.3.0/gcc-5.3.0.tar.bz2
utilisez la commande: tar -xjf
pour décompresser le fichier
Entrez le répertoire que vous avez décompressé tout à l'heure, par exemple $HOME/Downloads/gcc-5.3.0
, puis tapez la commande:
./configure --disable-checking --enable-languages=c,c++,objc
--disable-multilib --with-system-zlib prefix=/usr/bin/gcc-5.3
Installation de dépendance: la construction de GCC nécessite GMP4.2 +, MPFR 2.4.0+ et MPC 0.8.0+ et la construction est essentielle
sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev
sudo apt-get install build-essential
installer un compilateur C ++
sudo apt-get install g++
Type suivant:
make
sudo make install
Modifier si vous obtenez toujours un message d'erreur comme "zlib.h introuvable!" vous pouvez faire ce qui suit pour le réparer:
apt-get install zlib1g-dev
--disable-multilib
?
gcc/lto-compress.c:28:18: fatal error: zlib.h: No such file or directory
Je ne suis pas sûr de ce qui devrait être le dernier, car il y a toujours des dernières sorties. Mais vous pouvez installer n'importe lequel d'entre eux de cette manière.
Prenez gcc-8 comme exemple:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-8 g++-8
gcc-8 --version
si vous souhaitez sélectionner gcc-8 / g ++ - 8 avec une priorité plus élevée (20 dans ce cas), vous devez également
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 20 --slave /usr/bin/g++ g++ /usr/bin/g++-8
À vrai dire, je suis tout simplement trop paresseux pour quitter 17,3 - cela fonctionne pour moi. Cela étant dit, j'avais encore besoin d'un nouveau gcc. Pour le compiler à plusieurs reprises pour différentes cibles, j'ai un script bash (voir ci-dessous) que je modifie et exécute (j'écris mon propre OS jouet, donc je dois utiliser un gcc spécialement généré).
Modifiez les répertoires dans le script ci-dessous pour correspondre aux répertoires que vous avez. Je garde la version compilée dans mon propre répertoire afin de pouvoir facilement basculer entre ma version compilée et la version du système. Je vous conseille de faire de même. Vous devez télécharger binutils-2.23.2 ainsi que la version gcc qui vous intéresse (j'utilise 7.1.0 ci-dessous). Mettez-les dans un répertoire ~ / contrib avec le script ci-dessous.
Vous pouvez également changer la ligne "--enabled-languages = c" en "--enabled-languages = c, c ++, objc" - mon projet n'a besoin que de C. Une autre modification serait la valeur de PLATFORM. J'utilise "i686-elf" mais cela ne fonctionnera pas pour vous (je l'ai changé ci-dessous en quelque chose qui fonctionnera pour la plate-forme 32 bits). Vous pouvez essayer "x86_64-linux-gnu" pour une plate-forme 64 bits.
Pour les curieux - la raison pour laquelle je le construis comme ça est parce que le processus de construction de gcc avait un bogue qui empêchait la reconstruction dans le répertoire source. Je ne sais pas si ce bogue existe toujours (je l'ai rencontré pour la dernière fois en 4.8.0), mais la seule solution de contournement a été de créer explicitement dans un répertoire séparé si vous avez toujours voulu reconstruire.
[EDIT: effectuer l'installation des dépendances suggérées ci-dessus par 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"