gcc version mise à jour (votre compilateur C ++ ne prend PAS entièrement en charge C ++ 11)

1. Compilez le code source et installez gcc-4.9.2
1. Téléchargez le paquet de code source gcc

wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.gz

2. Décompressez le package compressé

tar -zxvf gcc-4.9.2.tar.gz

3. Téléchargez les packages de dépendances requis pour la compilation.
Cette étape peut être effectuée de deux manières:

a) Si Linux a une connexion réseau, directement comme ceci:

cd gcc-4.9.2
./contrib/download_prerequisites

b) Si Linux n'a pas de connexion réseau (mon hôte et ma machine virtuelle sont uniquement Hôte et ne peuvent pas être connectés à Internet, je pense donc à une autre manière), utilisez Windows pour télécharger ces packages sur Internet:

ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2

http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2

http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz

Puis décompressez et passez à gcc-4.8.1:

tar -xjf gmp-4.3.2.tar.bz2

tar -xjf mpfr-2.4.2.tar.bz2

tar -xzf mpc-0.8.1.tar.gz

4. Compilez et installez gcc

sudo apt install gcc-c++  glibc-static gcc //为避免出错建议安装此包
./configure --prefix=/usr/local/gcc  --enable-bootstrap  --enable-checking=release --enable-languages=c,c++ --disable-multilib
make
make install

Description des paramètres de compilation:

--Prefix = / usr / local / spécifier le chemin d'installation

--Enable-bootstrap Voici l'explication du paramètre à partir de la littérature en ligne: utilisez le programme généré par la première compilation pour la deuxième compilation, puis utilisez le programme généré pour la troisième compilation, et vérifiez et comparez les deuxième et troisième. l'exactitude des résultats secondaires signifie que des contrôles de compilation redondants sont effectués. Dans un environnement sans compilation croisée, la valeur a été définie pour activer par défaut et il n'est pas nécessaire d'afficher la désignation; dans un environnement de compilation croisée, elle doit être affichée et définie sur désactivée.

--Enable-checking = release Utilisez le standard de la version du logiciel pour vérifier la cohérence du code généré lors de la compilation; définir cette option sur enable ne changera pas le résultat binaire généré par le compilateur, mais augmentera le temps de compilation; cette option Seul le compilateur gcc est pris en charge; en général, pour l'option ci-dessus, la configuration matérielle de la machine est faible, et les chaussures pour enfants qui ne veulent pas attendre trop longtemps le temps de compilation peuvent être désactivées; mais ce sera augmenter le risque d'erreurs inattendues. Il doit donc être utilisé avec prudence. Vous pouvez définir --disable-bootstrap et --disable-checks en même temps, ce qui est très utile pour accélérer le processus de compilation.

--Enable-threads = posix Comme son nom l'indique, active la prise en charge des threads standard posix. Pour que le programme s'exécute correctement sur la distribution Linux conforme à la spécification POSIX, vous devez activer cette option, en fonction du type d'hôte ou de la cible fonctionnant. system, autres valeurs disponibles Il y a: aix, dec, solaris, win32, etc. Si vous êtes d'autres systèmes de type UNIX, vous devez définir les valeurs correspondantes.

--Enable-languages ​​= c, les types de langage de haut niveau et les bibliothèques d'exécution pris en charge par c ++, tous les langages pouvant être définis incluent ada, c, c ++, Fortran, java, objc, obj-c ++, GO et d'autres langages . Seuls c et c ++ sont activés ici, car plus il y a de langues prises en charge, plus les bibliothèques statiques et dynamiques correspondantes doivent être installées, ainsi qu'une variété de bibliothèques dépendantes, ce qui rendra la gestion difficile et la taille deviendra énorme.

--Disable-multilib Si votre système d'exploitation est 32 bits, il est défini sur désactiver par défaut, ce qui signifie que gcc ne peut générer que des programmes exécutables 32 bits; si votre système d'exploitation est 64 bits, il est déjà configuré pour activer par défaut. Cela signifie que lors de la compilation d'autres fichiers source avec gcc, vous pouvez utiliser l'option -m32 pour déterminer s'il faut générer du code machine 32 bits. Si vous souhaitez désactiver la génération de code 32 bits sur un système 64 bits, définissez --disable-multilib.

--Enable-Gather-Detail-Mem-stats vous permet de collecter des informations détaillées sur l'utilisation de la mémoire. Si vous définissez ce paramètre sur enable, le programme exécutable gcc compilé à l'avenir pourra être utilisé pour générer la compilation en temps réel d'autres programmes via le Option -fmem-report Utilisation de la mémoire.

--With-long-double-128 spécifie que le type double long est de 128 bits (16 octets!); S'il est défini sur sans, le type double long sera 64 bits (8 octets), ce qui sera le même que le normal type double. Lors de la compilation basée sur Glib 2.4 ou supérieur, la valeur par défaut est déjà de 128 bits.

5. Opérations de suivi

Exporter les variables d'environnement:

gcc --version
#gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16)
vim /etc/profile.d/gcc.sh
#export PATH=/usr/local/gcc/bin:$PATH
source /etc/profile.d/gcc.sh
gcc --version
#gcc (GCC) 5.1.0

Exporter le fichier d'en-tête:

ln -sv /usr/local/gcc/include/ /usr/include/gcc
#"/usr/include/gcc" -> "/usr/local/gcc/include/"

Exporter le fichier de bibliothèque:

vim /etc/ld.so.conf.d/gcc.conf
#/usr/local/gcc/lib64
ldconfig -v
ldconfig -p |grep gcc  //验证是否导出

À ce stade, GCC a également été installé.

Je suppose que tu aimes

Origine blog.csdn.net/qq_45467083/article/details/109533897
conseillé
Classement