La manière facile
Si vous êtes un développeur classique, vous pouvez installer la méthode simple, en utilisant les instructions sur http://gcc.gnu.org/wiki/InstallingGCC ou votre gestionnaire de packages système tels que:
apt install gcc # for Debian, Ubuntu, etc.
yum install gcc # for RedHat, CentOS, etc.
brew install gcc # for Mac OS X
À la dure
GCC dit que la réponse ici est «à la dure» car il construit tout morceau par morceau et n'utilise pas de bibliothèques partagées.
Infrastructure GCC
Obtenez l'infrastructure GCC:
ftp://gcc.gnu.org/pub/gcc/infrastructure/
Placez les téléchargements dans un répertoire temporaire (vous pouvez utiliser le répertoire de votre choix).
/opt/downloads
Construisez l'infrastructure dans un répertoire temporaire différent du répertoire de téléchargements ou de ses sous-répertoires:
/tmp/gcc
Configurez l'infrastructure à l'aide de bibliothèques statiques comme ceci:
./configure --disable-shared --enable-static --prefix=/tmp/gcc
L'indicateur --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 ne construis que du code statique et je veux m'assurer de ne pas créer de code partagé. Mon besoin est de déplacer facilement le GCC résultant autour de mes lecteurs, donc je veux tout le code statique, et je ne veux pas de code partagé. Si vous préférez le code partagé, omettez l'indicateur --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 actuel de GCC qui correspond à vos besoins. Les commandes de cette réponse concernent GCC 4.6.2.
Notez que la documentation GCC dit: "Bien que toute version suffisamment nouvelle des outils requis fonctionne généralement, les exigences de la bibliothèque sont généralement plus strictes. Les versions plus récentes peuvent fonctionner dans certains cas, mais il est plus sûr d'utiliser les versions exactes documentées."
GMP
GMP est la bibliothèque d'arithmétique à précision multiple 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 d'arrondis à virgule flottante à précision multiple GNU. Cela 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 GNU C à précision multiple. Cela 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
ELFE
ELF signifie Executable and Linkable Format. Cette bibliothèque fournit une taille et une prise en charge endian indépendantes 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
GCC
GCC est la collection de compilateurs GNU. Cela 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 de travail sur le même point de montage. (Le construire dans / tmp déclencherait des problèmes d'hôte 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 indicateurs doivent être tous sur une seule ligne de commande (cet article les montre sur des lignes séparées juste à cause 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 bibliothèque. Nous choisissons de désactiver le bootstrap et de désactiver 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 indicateurs qui sont par défaut parce que nous les voulons (les utilisateurs typiques peuvent vouloir utiliser d'autres threads ou sauter drapeaux par défaut). YMMV et lisez les drapeaux ici
/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 d'installation de GCC, comment le construire, divers indicateurs, 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 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 gcc. (Merci à N7P sur reddit)
--disable-shared
est faux pour la plupart des gens,--disable-bootstrap
peut accélérer la construction, mais peut provoquer son échec en fonction de la version de gcc existante,--enable-libgomp
activée par défaut de toute façon,--enable-lto
activée par défaut,--enable-thread-safe
pas une option valide,--enable-threads=posix
activée par défaut sur certaines plates-formes, non valide sur d'autres ,--enable-tls
activé par défaut, ... en gros, ces instructions sont plutôt médiocresbrew install gcc
. Voir linuxbrew.shLa réponse acceptée la rend beaucoup plus compliquée que nécessaire et n'est pas correcte pour toutes les versions. Construire GCC avec
--disable-shared
est généralement une très mauvaise idée. Voir http://gcc.gnu.org/wiki/InstallingGCC pour une approche plus simple.L' ensemble du processus ne devrait pas être plus difficile que cela (en remplaçant la version 4.6.2 par la version que vous souhaitez créer):
(Mais veuillez quand même lire le lien ci-dessus, il contient des informations utiles.)
Apparemment, certaines personnes sur Ubuntu ont des tonnes de conneries dans leur environnement qui interfèrent avec le processus de construction de GCC, et elles doivent d'abord les supprimer:
la source
unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE LD_LIBRARY_PATH
avant tout le reste comme suggéré ici: stackoverflow.com/questions/12255058/…Je travaille sur un cluster. Seul le nœud maître est connecté à Internet. Le logiciel sur les nœuds est obsolète et n'est généralement pas maintenu. Je n'ai pas d'accès root. J'ai deux options:
J'ai choisi le deuxième et construit gcc, g ++ et gfortran.
J'ai tout construit
et pour
make
j'ai utiliséCi-dessous, gcc est construit avec
On peut obtenir le dernier gcc d'ici: ftp://gcc.gnu.org/pub/gcc/releases
Les dépendances se trouvent ici: ftp://gcc.gnu.org/pub/gcc/infrastructure
Dépendances
J'obtiens des dépendances avec le script suivant:
La fonction bash suivante est utilisée ci-dessous:
Chacune des commandes ci-dessous doit être exécutée dans le répertoire de la bibliothèque qui vient d'être téléchargée.
GMP
MPFR
MPC
ISL
CLOOG
gcc
la source
LD_LIBRARY_PATH
pour utiliser le GCC résultant.J'ai utilisé ce que Jonathan a mentionné ci-dessus, sauf que j'ai dû télécharger gmp et mpfr manuellement et créer un lien logiciel (la distribution gcc 4.4.2 n'a probablement pas de "download_prerequisites")
Btw, l'utilisation de "-with-gmp" et "with-mpfr" avec "./configure" m'a donné "configure: erreur: impossible de calculer le suffixe des fichiers objets: impossible de compiler". Par conséquent, j'ai téléchargé les srcs de gmp et mpfr, puis j'ai créé le lien logiciel vers celui-ci à partir de gcc src top leve dir
la source
Après avoir essayé d'installer les dépendances GCC, y compris GMP, MPFR et MPC. J'ai rencontré des exigences d'installation supplémentaires, des erreurs et des fichiers manquants; comme le fichier d'en-tête gmp.h requis par MPFR pour l'installation. Il y a un certain nombre de problèmes que vous rencontrerez au cours du processus. Cependant, il existe un moyen plus simple de créer et d'installer GCC-X.0.0 ou une version ultérieure avec une liaison automatique .
OPTION UN.
Pour éviter les problèmes de construction avec make, installez et liez les bibliothèques dynamiques, simplement:
Téléchargez votre version GCC-X.0.0 (avec la dernière version sur: https://gcc.gnu.org/ )
Extrayez les fichiers gcc-X-000.tar.gz vers un emplacement / somepath /.
Une fois que vous avez extrait le fichier .tar.gz, exécutez le script ./contrib/download_prerequisites qui se trouve sur / somepath / ou le répertoire source.
Ce script téléchargera les bibliothèques de support, notamment: GMP, MPFR et MPC et créera un Symlinks pour vous, qui CONSTRUIRE toutes les dépendances gcc automatiquement dans le cadre du processus d'installation de gcc.
Pas besoin de construire et de lier les bibliothèques de support qui ont été téléchargées vers / somepath / en émettant Make, Make Install ou en exécutant le fichier ./configure ou en ajoutant des liens tels que --with-gmp = / gmp_path / ... / ..... , --with-mpfr = / mpfr_path / ... / ... car cela a été fait lorsque vous avez exécuté le script qui a créé des liens symboliques .
OPTION DEUX.
CONFIGURATION:
Problème:
NB:
--enable-languages tels que c ++ ou c.
--disable-multilib ; désactivez multilib en fonction de votre système et de votre système d'exploitation, vous serez invité à indiquer multilib pour continuer.
La réalisation prendra beaucoup de temps. Cependant, vous pouvez émettre l'option -j #no_pro. Cela exécutera Make simultanément en parallèle en fonction du nombre de processeurs sur votre PC ou Mac.
Pour des informations détaillées sur la façon d'exécuter ce processus, vous pouvez visiter: https://gcc.gnu.org/wiki/InstallingGCC .
la source
J'ai suivi la réponse la plus acceptée de joelparkerhenderson. C'est la meilleure réponse que j'ai pu trouver pour l'installation sur un système * NIX via Internet.
Pour la postérité, je veux ajouter que si vous obtenez une erreur du type "erreur d'installation: impossible de calculer le suffixe des fichiers objet: impossible de compiler"
puis mettez à jour votre LD_LIBRBARY_PATH avec / tmp / gcc / lib (voir la réponse complète de joelparkerhenderson pour le contexte)
/ tmp / gcc / lib contient tous les fichiers mpfr / mpc / gmp requis et l'éditeur de liens d'exécution ne peut pas les trouver à moins que vous ne les ajoutiez à LD_LIBRARY_PATH. N'oubliez pas non plus d'exporter LD_LIBRARY_PATH;). Plus de contexte ici: https://gcc.gnu.org/wiki/FAQ#configure_suffix
la source