Für die Erstellung von GCC sind GMP 4.2+, MPFR 2.3.1+ und MPC 0.8.0+ erforderlich

72

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:

Die folgenden Bibliotheken sind in den jeweiligen Verzeichnissen vorhanden

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?

Programmierer
quelle
52
Versuchen Sie, ./contrib/download_prerequisites.shaus dem gcc-Quellverzeichnis zu laufen . Es hat bei mir funktioniert (allerdings für die aktuelle Version von gcc ( gcc-4.7)
Sebastian
23
Das Skript scheint keine .sh-Erweiterung mehr zu haben : ./contrib/download_prerequisites.
Jeroen
download_prerequisites.sh wurde in 4.6 hinzugefügt, wie es aussieht. 4.5.0 hat es nicht.
Bobpaul

Antworten:

11

In dem Verzeichnis, in dem ich diese Bibliotheken installiert habe ( /usr/gnu64/lib), habe ich auch eine libgmp.laDatei (und libmpc.laund libmpfr.laDateien), 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 -vOption erstellt habe. Zum Teil hieß es:

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/libund sage dann GCC, wo sie mit den Konfigurationsoptionen zu --with-mpfr=/usr/gnu64/libfinden --with-gmp=/usr/gnu64/libsind --with-mpc=/usr/gnu/64/lib. Diese Pfade sind fest mit GCC verbunden und funktionieren von dort aus.

Jonathan Leffler
quelle
Ich habe den gleichen Schritt versucht, aber .a und .la mit --with-gmp / mpfr in einen lokalen Ordner in einen lokalen Ordner kopiert, aber es wird immer noch der gleiche Fehler ausgegeben. Außerdem habe ich gmp / mpfr / mpc von gcc.gnu.org/pub/gcc/infrastructure [gmp-4.3.2.tar.bz2, mpfr-2.4.2.tar.bz2, mpc-0.8.1.tar heruntergeladen und erstellt .gz] aber mpc-Zustände erstellen - konfigurieren: Fehler: GMP-Version> = 4.2 erforderlich, während gcc immer noch den gleichen Fehler aufweist.
Programmierer
@Prakash: Nehmen Sie in diesem Fall an, dass GCC und seine Konfigurationssuite wissen, was es tut, und fahren Sie mit dem Kompilieren und Installieren der anderen drei Bibliotheken fort. Ich habe es immer als separate Operation ohne Bezugnahme auf GCC durchgeführt (obwohl GCC die Neuerstellungen ausgelöst hat). Ich glaube, es gibt eine Möglichkeit, GCC dazu zu bringen, die Bibliotheken so wie sie sind zu erstellen und zu installieren - indem Sie die Quelle für GMP, MPFR, MPC im GCC-Quellbaum haben. Überprüfen Sie die ./configure --helpAusgabe auf Informationen.
Jonathan Leffler
2
Seit ich dies geschrieben habe, habe ich mir vorgenommen, dass GCC die Version von GMP, MPFR und MPC zusammen mit dem Compiler erstellt. Ich erhalte jetzt die Quelle für die aktuelle Version der Bibliothek und extrahiere sie in das oberste Verzeichnis der GCC-Quelle: gmp-6.0.0, mpfr-3.1.2 usw. Dann erstelle ich für jede einen Symlink : 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.
Jonathan Leffler
175

Führen Sie im Verzeichnis gcc den folgenden Befehl aus:

Nach diesem Skript sind GMP, MPFR und MPC einsatzbereit. Weiter mit ./configure.

Joseph Hansen
quelle
2
Ich habe versucht, gcc 6.2 auf bash unter ubuntu unter Windows zu installieren. Dieser Befehl hat bei mir funktioniert. Vielen Dank!
Emile Vrijdags
3
Dank dafür. Ich war auf einer Maschine ohne Nein festgefahren sudo, und dies löste meine Probleme
Arnon
2
Ich habe den ganzen Tag danach gesucht. Vielen Dank!
Stephen C
3
Sie sind mein Held.
Daniel Brooks
4
Tot on, das sollte die richtige Antwort sein. Super Star.
Evensis
64

Ich 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:

Damico
quelle
2
Unter Amazon Linux ist essudo yum install libmpc-devel
Jonathon Hill
1
Centos braucht auchsudo yum install libmpc-devel
bebbo
Auf Ubuntu 16 ist es sudo apt-get install libmpc-dev
19

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.

Äther
quelle
0

Centos7: sudo yum installiere libmpc-devel

Jiajia Li
quelle
Gut, dass Sie eine Antwort geben. Zu Ihrer Information, anstatt nur eine Antwort zu geben Es wäre für andere hilfreich zu sagen, warum Sie diesen Befehl ausführen möchten und was er tun sollte. Es ist auch eine gute Idee, sicherzustellen, dass Sie alle gestellten Fragen beantworten
Josh