116 votes

Construire GCC nécessite GMP 4.2+, MPFR 2.3.1+ et MPC 0.8.0+

J'ai téléchargé GCC 4.5 depuis http://www.netgull.com/gcc/releases/gcc-4.5.0/ mais lorsque j'essaie de configurer / construire, j'obtiens l'erreur suivante :

Linux:>~/shared_scripts/bin/gcc/gcc-4.5.0 1040> /x/home/prakash_satya/shared_scripts/bin/gcc/gcc-4.5.0/configure CC="gcc -m64" --prefix=/x/home/prakash_satya/shared_scripts/bin/gcc/gcc-4.5.0 --with-gmp-lib=/usr/lib64 --with-mpfr-lib=/usr/lib64 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-languages=c,c++
vérification du type de système de construction... x86_64-unknown-linux-gnu
vérification du type de système hôte... x86_64-unknown-linux-gnu
vérification du type de système cible... x86_64-inconnu-linux-gnu
vérification de l'installation compatible BSD... /usr/bin/install -c
vérification si ln fonctionne... oui
vérification si ln -s fonctionne... oui
vérification d'un sed qui ne tronque pas la sortie... /bin/sed
vérification de gawk... gawk
vérification de gcc... gcc -m64
vérification du nom de fichier de sortie par défaut du compilateur C... a.out
vérification du fonctionnement du compilateur C... oui
vérification si nous compilons de façon croisée... non
vérification du suffixe des exécutables...
vérification du suffixe des fichiers objets... o
vérification si nous utilisons le compilateur C GNU... oui
vérification si gcc -m64 accepte -g... oui
vérification de l'option gcc -m64 pour accepter ISO C89... non nécessaire
vérification de g++... g++
vérification si nous utilisons le compilateur C++ GNU... oui
vérification si g++ accepte -g... oui
vérification de gnatbind... non
vérification de gnatmake... non
vérification si le pilote du compilateur comprend Ada... non
vérification de la méthode pour comparer les objets bootstrapés... cmp --ignore-initial=16 $$f1 $$f2
vérification de objdir... .libs
vérification de la version correcte de gmp.h... non
configure: erreur: La construction de GCC nécessite GMP 4.2+, MPFR 2.3.1+ et MPC 0.8.0+.
Essayez les options --with-gmp, --with-mpfr et/ou --with-mpc pour spécifier
leurs emplacements. Le code source de ces bibliothèques peut être trouvé sur
leurs sites d'hébergement respectifs ainsi que sur
ftp://gcc.gnu.org/pub/gcc/infrastructure/. Voir également
http://gcc.gnu.org/install/prerequisites.html pour plus d'informations. Si
vous avez obtenu GMP, MPFR et/ou MPC à partir d'un package de distribution de fournisseur,
assurez-vous d'avoir installé à la fois les bibliothèques et les en-têtes
fichiers. Ils peuvent être situés dans des packages séparés.
Linux:>~/shared_scripts/bin/gcc/gcc-4.5.0 1041>

Les bibliothèques suivantes sont présentes dans les répertoires respectifs

/usr/lib/libgmp.a
/usr/lib64/libgmp.a

/usr/lib/libmpfr.a
/usr/lib64/libmpfr.a

Je n'ai pas la bibliothèque libmpc.a installée n'importe où dans les boîtes.

En fonction de l'erreur, comment puis-je savoir :

a) quelle est la version actuelle de libgmp.a et libmpfr.a installées.

b) Si ce sont des versions incorrectes, comment puis-je déployer ma propre version sans perturber l'actuelle?

276voto

johsephm Points 769

À l'intérieur du répertoire gcc, exécutez cette commande :

./contrib/download_prerequisites

Après l'exécution de ce script, GMP, MPFR et MPC seront prêts à être utilisés. Poursuivez avec ./configure.

79voto

Damico Points 111

J'ai eu le même problème en essayant d'installer/de compiler GCC 4.8.1. Voici comment j'ai résolu :

Sous Debian, il suffit d'exécuter ces deux commandes :

apt-get install libmpc-dev
./configure

25voto

etherice Points 626

J'ai eu le même problème en compilant la branche GCC 4.9.

Pour les systèmes basés sur Red Hat et Fedora, exécutez la commande suivante :

sudo yum install gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel

Cela installera les bibliothèques GNU de précision multiple (MP) pour les nombres entiers, à virgule flottante et complexes.

12voto

Jonathan Leffler Points 299946

Dans le répertoire où j'ai ces bibliothèques installées (/usr/gnu64/lib), j'ai également un fichier libgmp.la (et des fichiers libmpc.la et libmpfr.la), qui contiennent du texte lisible. Les informations de version SO s'y trouvent, mais ce n'est pas tout à fait la même chose que la 'version du produit'. Cela parle plutôt de la compatibilité des liens.

J'essayais d'investiguer quelle version j'avais, et la solution étrange à laquelle j'ai pensé a été d'exécuter le GCC (4.6.1) que j'ai construit avec l'option -v. En partie, il a dit :

GNU C (GCC) version 4.6.1 (x86_64-apple-darwin11.1.0)
    compilé avec la version GNU C 4.6.1, GMP version 5.0.1, MPFR version 3.0.0, MPC version 0.8.2
attention : la version de l'en-tête GMP 5.0.1 diffère de la version de la bibliothèque 5.0.2.
attention : la version de l'en-tête MPFR 3.0.0 diffère de la version de la bibliothèque 3.1.0.
attention : la version de l'en-tête MPC 0.8.2 diffère de la version de la bibliothèque 0.9.

Donc, il semble que j'ai GMP 5.0.2 installé (mais j'ai construit GCC avec 5.0.1), et MPFR 3.1.0 (mais j'ai construit GCC avec 3.0.0) et MPC 0.9 (mais j'ai construit GCC avec 0.8.2). La différence vient du fait que j'ai essayé de compiler et d'installer GCC 4.6.2 et il avait probablement besoin des nouvelles versions. (Je n'ai pas réussi, mais c'est une autre histoire.)

J'installe mes bibliothèques personnalisées dans /usr/gnu64/lib, puis je dis à GCC de les trouver à cet endroit avec les options de configuration --with-mpfr=/usr/gnu64/lib, --with-gmp=/usr/gnu64/lib, --with-mpc=/usr/gnu/64/lib. Ces chemins sont codés en dur dans GCC et cela fonctionne à partir de là.

1voto

Jiajia Li Points 1

Centos7 : sudo yum install libmpc-devel

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X