La méthode simple
Si vous êtes un développeur classique, vous pouvez procéder à l'installation de la manière la plus simple, en suivant les instructions à l'adresse suivante http://gcc.gnu.org/wiki/InstallingGCC ou le gestionnaire de paquets de votre système, par exemple :
apt install gcc # for Debian, Ubuntu, etc.
yum install gcc # for RedHat, CentOS, etc.
brew install gcc # for Mac OS X
La méthode dure
GCC dit que la réponse ici est "la manière forte" parce qu'il construit tout morceau par morceau, et n'utilise pas de bibliothèques partagées.
Infrastructure du CCG
Obtenez l'infrastructure du CCG :
ftp://gcc.gnu.org/pub/gcc/infrastructure/
Mettez les téléchargements dans un répertoire temporaire (vous pouvez utiliser le répertoire que vous voulez).
/opt/downloads
Construisez l'infrastructure dans un répertoire temporaire différent du répertoire des téléchargements ou de ses sous-répertoires :
/tmp/gcc
Configurez l'infrastructure en utilisant des bibliothèques statiques comme ceci :
./configure --disable-shared --enable-static --prefix=/tmp/gcc
Le drapeau --disable-shared peut valoir la peine d'être examiné de plus près en fonction de vos besoins. J'utilise --disable-shared parce que je construis uniquement du code statique, et je veux m'assurer que je ne construis pas de code partagé. Mon besoin est de déplacer le GCC résultant sur mes disques facilement, donc je veux tout le code statique, et je ne veux pas de code partagé. Si vous préférez le code partagé, omettez le drapeau --disable-shared.
Versions
Lorsque vous exécutez l'une des commandes de cette réponse, assurez-vous de mettre à jour les commandes pour utiliser le numéro de version de GCC actuel qui correspond à vos besoins. Les commandes de cette réponse sont pour GCC 4.6.2.
Notez que la documentation GCC dit : "Alors que toute version suffisamment nouvelle des outils requis fonctionne généralement, les exigences en matière de bibliothèque sont généralement plus strictes. Des versions plus récentes peuvent fonctionner dans certains cas, mais il est plus sûr d'utiliser les versions exactes documentées."
BPF
GMP est la bibliothèque arithmétique à précision multiple de GNU.
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
bunzip2 gmp-4.3.2.tar.bz2
tar xvf gmp-4.3.2.tar
cd gmp-4.3.2
./configure --disable-shared --enable-static --prefix=/tmp/gcc
make && make check && make install
MPFR
MPFR est la bibliothèque GNU d'arrondi en virgule flottante à précision multiple. Elle dépend de GMP.
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
bunzip2 mpfr-2.4.2.tar.bz2
tar xvf mpfr-2.4.2.tar
cd mpfr-2.4.2
./configure --disable-shared --enable-static --prefix=/tmp/gcc --with-gmp=/tmp/gcc
make && make check && make install
MPC
MPC est la bibliothèque C à précision multiple de GNU. Elle dépend de GMP et MPFR.
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
tar zxvf mpc-0.8.1.tar.gz
cd mpc-0.8.1
./configure --disable-shared --enable-static --prefix=/tmp/gcc --with-gmp=/tmp/gcc --with-mpfr=/tmp/gcc
make && make check && make install
ELF
ELF est l'abréviation de Executable and Linkable Format. Cette bibliothèque fournit un support de la taille et de l'endian indépendant de l'architecture.
wget http://www.mr511.de/software/libelf-0.8.13.tar.gz
tar zxvf libelf-0.8.13.tar.gz
cd libelf-0.8.13
./configure --disable-shared --enable-static --prefix=/tmp/gcc
make && make check && make install
CCG
GCC est la collection de compilateurs GNU. Il dépend de GMP, MPFR, MPC et ELF.
wget http://www.netgull.com/gcc/releases/gcc-4.6.2/gcc-4.6.2.tar.gz
tar zxvf gcc-4.6.2.tar.gz
Construisez gcc dans un répertoire scratch sur le même point de montage. (Le construire dans /tmp déclencherait des problèmes de compilation croisée).
mkdir -p /opt/downloads/gcc-4.6.2-scratch
cd /opt/downloads/gcc-4.6.2-scratch
La commande configure et ses drapeaux doivent figurer sur une seule ligne de commande (dans cet article, ils sont présentés sur des lignes séparées en raison de la largeur de la page Web).
Remarque : Nous utilisons le chemin complet pour configurer et ne définissons pas les variables d'environnement du chemin de la bibliothèque. Nous choisissons de désactiver le bootstrap et les bibliothèques partagées parce que nous ne les voulons pas (les utilisateurs typiques peuvent vouloir les deux), et d'utiliser les threads posix et les drapeaux par défaut parce que nous les voulons (les utilisateurs typiques peuvent vouloir utiliser d'autres threads ou sauter les drapeaux par défaut). YMMV et lisez à propos des drapeaux aquí
/opt/downloads/gcc-4.6.2/configure
--disable-shared
--disable-bootstrap
--disable-libstdcxx-pch
--enable-languages=all
--enable-libgomp
--enable-lto
--enable-threads=posix
--enable-tls
--with-gmp=/tmp/gcc
--with-mpfr=/tmp/gcc
--with-mpc=/tmp/gcc
--with-libelf=/tmp/gcc
--with-fpmath=sse
make && make install
Cette page est idéale pour les informations sur l'installation de GCC, comment le construire, les différents drapeaux, et plus encore :
http://www.acsu.buffalo.edu/~charngda/cc_build.html
Mises à jour
Les bibliothèques ppl peuvent être utilisées pour des optimisations de la mémoire : voir bugseng.com/products/ppl/Download (Merci Paul dans les commentaires)
Vous pouvez exécuter ./contrib/download_prerequisites à partir du répertoire source de gcc. (Merci à N7P sur reddit)