web-dev-qa-db-fra.com

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

J'ai téléchargé GCC 4.5 à partir de http://www.netgull.com/gcc/releases/gcc-4.5.0/ mais lorsque j'essaie d'installer/de générer, je reçois une erreur ci-dessous:

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++
checking build system type... x86_64-unknown-linux-gnu
checking Host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /bin/sed
checking for gawk... gawk
checking for gcc... gcc -m64
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc -m64 accepts -g... yes
checking for gcc -m64 option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for gnatbind... no
checking for gnatmake... no
checking whether compiler driver understands Ada... no
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2
checking for objdir... .libs
checking for the correct version of gmp.h... no
configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
their locations.  Source code for these libraries can be found at
their respective hosting sites as well as at
ftp://gcc.gnu.org/pub/gcc/infrastructure/.  See also
http://gcc.gnu.org/install/prerequisites.html for additional info.  If
you obtained GMP, MPFR and/or MPC from a vendor distribution package,
make sure that you have installed both the libraries and the header
files.  They may be located in separate packages.
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

La bibliothèque libmpc.a ne se trouve pas dans les boîtes.

Basé sur l'erreur, comment puis-je savoir:

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

b) Si leur version est incorrecte, comment puis-je déployer ma propre version sans perturber la version actuelle?

54
Programmer

Dans le répertoire où j'ai installé ces bibliothèques (/usr/gnu64/lib), J'ai aussi un libgmp.la fichier (et libmpc.la et libmpfr.la fichiers), qui contiennent un texte lisible. Les informations sur la version SO) sont indiquées ici, mais ce n'est pas tout à fait la même chose que la "version du produit". Elle indique plutôt la compatibilité des liens.

J'essayais de déterminer quelle version j'avais, et la solution étrange que j'ai proposée consistait à exécuter le GCC (4.6.1) que j'avais construit avec le -v option. En partie, il disait:

GNU C (GCC) version 4.6.1 (x86_64-Apple-darwin11.1.0)
    compiled by GNU C version 4.6.1, GMP version 5.0.1, MPFR version 3.0.0, MPC version 0.8.2
warning: GMP header version 5.0.1 differs from library version 5.0.2.
warning: MPFR header version 3.0.0 differs from library version 3.1.0.
warning: MPC header version 0.8.2 differs from library version 0.9.

Donc, il semble que GMP 5.0.2 soit installé (mais j'ai construit GCC avec 5.0.1) et MPFR 3.1.0 (mais que j'ai construit GCC avec 3.0.0) et MPC 0.9 (mais que j'ai construit GCC avec 0.8.2 ) Cette discordance est due au fait que j’ai essayé de compiler et d’installer GCC 4.6.2 et qu’il avait probablement besoin des versions les plus récentes. (Je n'ai pas réussi, mais c'est une autre histoire.)

J'installe mes bibliothèques personnalisées dans /usr/gnu64/lib, puis dites à GCC où les trouver avec les options de configuration --with-mpfr=/usr/gnu64/lib, --with-gmp=/usr/gnu64/lib, --with-mpc=/usr/gnu/64/lib. Ces chemins sont câblés dans GCC et cela fonctionne à partir de là.

8
Jonathan Leffler

Dans le répertoire gcc, faites cette commande:

./contrib/download_prerequisites

Après ce script, GMP, MPFR et MPC seront prêts à être utilisés. Continue avec ./configure.

111
Joseph Hansen

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

Dans Debian, exécutez simplement ces deux commandes:

apt-get install libmpc-dev
./configure
56
Damico

J'ai eu le même problème lors de la compilation de 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 multi-précision (MP)) pour les nombres entiers, les nombres à virgule flottante et les nombres complexes.

17
etherice