Comment installer la dernière version stable de GCC dans Linux Mint?

8

Je veux installer la dernière version de GCC (collection de compilateurs GNU) dans Linux Mint 17.3. g++ --versionRenvoie actuellement la version 4.8.4, tandis que la dernière version stable est la 5.3.

Becko
la source
Rétroporter une version plus récente est généralement possible, mais n'est pas non plus trivial. Une alternative est une installation locale à partir de la source. Du point de vue de la propreté, un backport est préférable, cependant.
Faheem Mitha
Existe-t-il une autre façon de l'installer, peut-être pas en tant que package?
Becko
Oui, comme je l'ai dit plus haut, une installation locale est une option. Mais vous devez faire attention de pouvoir le désinstaller proprement par la suite. La construction d'un package est un processus plus difficile, mais plus facile et plus propre du point de vue de la maintenance.
Faheem Mitha
La dernière version de Gcc, 9.2, est distribuée en tant que code source, si ce commentaire n'est pas supprimé par le modérateur, alors vous pourriez avoir le temps de lire le howto sur son site d'origine gcc.gnu.org . La réponse précédente a été supprimée sans raison valable à mon humble avis.
bbaassssiiee

Réponses:

8

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 ...

Vinood NK Maheshwari
la source
Pourquoi voudrais-je installer g++-4.7, qui est une version inférieure à celle que g++-4.8j'ai déjà? Je souhaite mettre à niveau, pas rétrograder.
Becko
il était de 4,8 et vous devez rechercher avant le dernier package disponible avec la recherche apt-cache gcc je vous ai donné la logique mais vraiment vous avez rétrogradé mes points gr8
Vinood NK Maheshwari
Actuellement, cette réponse semble incohérente. Veuillez expliquer pourquoi l'OP souhaiterait installer la v4.7 au lieu de la v5 (de préférence sans clichés sur les vertus du travail acharné).
2016
remplacez 4.7 par 4.9 et cela fonctionne.
Algoman
3

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 -xjfpour 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
GAD3R
la source
Si vous avez des erreurs, veuillez commenter. Je mettrai à jour.
GAD3R
Pourquoi --disable-multilib?
Becko
erreur:gcc/lto-compress.c:28:18: fatal error: zlib.h: No such file or directory
becko
Le lien est mort.
einpoklum
1

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
Zhi Yuan
la source
0

À 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"
Lelanthran
la source