Ich versuche gerade, gcc 4.8.1 zu installieren. Derzeit sind 4.8.2 und 4.9.1 installiert. Ich habe eine 4.8.1 von hier heruntergeladen: http://gcc.cybermirror.org/releases/gcc-4.8.1/ . Nachdem ich die Dateien extrahiert hatte, machte ich eine ./configure
und versuchte es dann make
. Am Ende make
bekomme ich diesen Fehler
/usr/include/linux/errno.h:1:23: fatal error: asm/errno.h: No such file or directory
#include <asm/errno.h>
Ich bin neu in Linux, daher weiß ich nicht, wie ich diese Header-Datei finden oder hinzufügen kann.
Edit: Schritte, die ich gemacht habe:
- Extrahieren Sie gcc-4.8.1.tar.gz in einen Ordner
- Terminalfenster öffnen
cd gcc-4.8.1
./configure --build=x86_64-linux-gnu
make -j4
Ich weiß nicht, was ich anders gemacht habe, aber es wurde schließlich kompiliert. Danach habe ich installiert. Meine Frage jetzt, wie ich dies anstelle von 4.8.2 verwende, die mit dem Befehl gcc-4.8 immer noch standardmäßig verwendet wird.
sudo make install
. Es wird dringend empfohlen, beim Erstellen von Inhalten aus dem Quellcode während der Konfiguration das--prefix
Flag (und mit GCC das--program-suffix
Flag) zu verwenden. Versuchen Sie es, da Sie es nicht getan haben/usr/bin/gcc
./usr/bin/gcc
normalerweise vom Ubuntu-Paketsystem verwaltet werden sollte, wurde es jetzt von dem von Ihnen kompilierten überschrieben.Antworten:
Der
asm/errno.h
Header wird von einer Vielzahl von Paketen bereitgestellt . Seltsam, dassgcc
es erforderlich wäre, aber Sie können versuchen:Sie müssen GCC außerdem anweisen, nach einer Architektur und einem betriebssystemspezifischen Speicherort für die Header zu suchen:
(oder
i386-linux-gnu
für 32-Bit-Ubuntu).Es wird dringend empfohlen, beim Erstellen von Inhalten aus dem Quellcode während der Konfiguration das
--prefix
Flag (und mit GCC das--program-suffix
Flag) zu verwenden. Versuchen Sie es, da Sie es nicht getan haben/usr/bin/gcc
.Somit:
Jetzt werden Ihre GCC-Binärdateien installiert
/usr/local/bin/
und andere Dinge in anderen Ordnern in/usr/local
.Zum Beispiel:
Beachten Sie, wie ich ausgeführt werde
configure
undmake
aus einem anderen Verzeichnis außerhalb der GCC-Quelle? So empfehlen die GCC-Dokumente , dass GCC erstellt wird.quelle
Ich habe den gleichen Fehler bekommen
ubuntu-xenial 4.4.0-75-generic
.Ich fand, ich hatte einen
/usr/include/asm-generic
Ordner, aber nein/usr/include/asm
, den gcc suchte.Das Erstellen eines Symlinks hat es für mich gelöst.
Faire Warnung : Obwohl man manchmal solche Tricks machen muss, ist es nicht immer eine gute Idee, nur weil es funktioniert. Ich mache das in einer virtuellen Maschine, die ich durch Ausführen eines einfachen Skripts neu erstellen kann, und deshalb ist es keine große Sache, wenn ich etwas kaputt mache.
quelle