Ich habe GCC 4.5 von http://www.netgull.com/gcc/releases/gcc-4.5.0/ heruntergeladen, aber wenn ich versuche, es einzurichten / zu erstellen, wird der folgende Fehler angezeigt:
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>
Die folgenden Bibliotheken sind in den jeweiligen Verzeichnissen vorhanden
/usr/lib/libgmp.a
/usr/lib64/libgmp.a
/usr/lib/libmpfr.a
/usr/lib64/libmpfr.a
Ich habe keine libmpc.a-Bibliothek irgendwo in Boxen installiert.
Wie kann ich aufgrund des Fehlers wissen:
a) Was ist die aktuelle Version von libgmp.a und libmpfr.a sind installiert.
b) Wenn sie eine falsche Version haben, wie kann ich meine eigene Version bereitstellen, ohne die aktuelle zu stören?
./contrib/download_prerequisites.sh
aus dem gcc-Quellverzeichnis zu laufen . Es hat bei mir funktioniert (allerdings für die aktuelle Version von gcc (gcc-4.7
)./contrib/download_prerequisites
.Antworten:
In dem Verzeichnis, in dem ich diese Bibliotheken installiert habe (
/usr/gnu64/lib
), habe ich auch einelibgmp.la
Datei (undlibmpc.la
undlibmpfr.la
Dateien), die lesbaren Text enthalten. Die SO-Versionsinformationen sind dort enthalten, aber das ist nicht ganz dasselbe wie die 'Produktversion'. Stattdessen wird die Linkkompatibilität beschrieben.Ich habe versucht zu untersuchen, welche Version ich hatte, und die seltsame Lösung, die ich gefunden habe, bestand darin, das GCC (4.6.1) auszuführen, das ich mit dieser
-v
Option erstellt habe. Zum Teil hieß es: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.
Es scheint also, dass ich GMP 5.0.2 installiert habe (aber ich habe GCC mit 5.0.1 erstellt) und MPFR 3.1.0 (aber ich habe GCC mit 3.0.0 erstellt) und MPC 0.9 (aber ich habe GCC mit 0.8.2 erstellt ). Die Nichtübereinstimmung ist darauf zurückzuführen, dass ich versucht habe, GCC 4.6.2 zu kompilieren und zu installieren, und vermutlich die neueren Versionen benötigt wurden. (Es ist mir nicht gelungen, aber das ist eine andere Geschichte.)
Ich installiere meine benutzerdefinierten Bibliotheken in
/usr/gnu64/lib
und sage dann GCC, wo sie mit den Konfigurationsoptionen zu--with-mpfr=/usr/gnu64/lib
finden--with-gmp=/usr/gnu64/lib
sind--with-mpc=/usr/gnu/64/lib
. Diese Pfade sind fest mit GCC verbunden und funktionieren von dort aus.quelle
./configure --help
Ausgabe auf Informationen.ln -s gmp-6.0.0 gmp; ln -s mpfr-3.1.2 mpfr; ln -s mpc-1.0.2 mpc
. Dann führe ich GCC configure and build aus und GCC erstellt auch diese Bibliotheken.Führen Sie im Verzeichnis gcc den folgenden Befehl aus:
Nach diesem Skript sind GMP, MPFR und MPC einsatzbereit. Weiter mit
./configure
.quelle
sudo
, und dies löste meine ProblemeIch hatte das gleiche Problem beim Versuch, GCC 4.8.1 zu installieren / kompilieren. So habe ich gelöst:
Führen Sie in Debian einfach diese beiden Befehle aus:
quelle
sudo yum install libmpc-devel
sudo yum install libmpc-devel
Ich hatte das gleiche Problem beim Kompilieren des GCC 4.9-Zweigs.
Führen Sie für Red Hat- und Fedora- basierte Systeme den folgenden Befehl aus:
sudo yum install gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel
Dadurch werden die GNU-MP-Bibliotheken (Multiple Precision) für Ganzzahlen, Gleitkommazahlen und komplexe Zahlen installiert.
quelle
Centos7: sudo yum installiere libmpc-devel
quelle