Ich habe kürzlich ein Upgrade von Kubuntu 12.04 auf 13.04 durchgeführt, eine vollständige Neuinstallation.
Verwenden von gcc 4.7.3. Ich habe einige Programme zusammengestellt, um festzustellen, dass es kein /usr/include/sys
Verzeichnis gibt. Das heißt, types.h
, stat.h
, usw., sind nicht vorhanden. Sie existieren im include/linux
Verzeichnis, aber nicht include/sys
.
Was ist los?
Antworten:
Wenn Sie Ubuntu auf 64-Bit verwenden (auf einem 32-Bit-System kann ich momentan keinen genauen Text schreiben), lautet das Verzeichnis aus der Frage:
Mit diesen Informationen können Sie nun symbolische Links zu diesen Dateien erstellen, wenn Sie sie an diesem Speicherort (
/usr/include/sys
) wirklich benötigen. Verwenden Sie dazu diese Informationen auf einem Terminal:quelle
Installieren Sie libc6-dev-amd64, wenn Sie unter einem 64-Bit-Linux arbeiten. Geben Sie den folgenden Befehl auf dem Ubuntu-Terminal ein:
quelle
Das sys-Verzeichnis ist ein Unix / Linux-Systemheaderverzeichnis mit vielen Systembefehlen. Verschiedene Marken / Versionen von Linux können es an verschiedenen Orten platzieren. Der folgende Befehl kann Ihnen helfen:
Der erste beherbergt BSD-Unix-System-Header.
Das zweite ist ein Verzeichnis mit Linux 64-Bit-Systemköpfen.
Ich habe Probleme damit, dass cmake die Datei sys / stat.h nicht finden kann. Meine vorübergehende Lösung besteht darin, eine symbolische Verbindung herzustellen
Ich möchte das Verzeichnis / usr / include nicht verschmutzen und erstelle nur einen Link zu einer bestimmten Header-Datei und nicht zum gesamten sys-Verzeichnis. Ich denke, dies ist ein Defekt von cmake, so dass nur minimale Auswirkungen auftreten, wenn nur ein Link erstellt wird. Hoffe, dies kann denen helfen, die unter dem gleichen Problem leiden.
quelle
Lassen Sie uns überprüfen, wie der Standard-Suchpfad für gcc lautet. Aus dieser Antwort erhalten wir diesen Befehl:
Am Ende der Ausgabe sehe ich dies auf meinem Computer:
Beachten Sie die vorletzte Zeile. Das bedeutet, dass
#include <sys/stat.h>
gcc beim Kompilieren einer C-Datei mit gcc sucht,/usr/include/x86_64-linux-gnu/sys/stat.h
bevor Sie es versuchen/usr/include/sys/stat.h
, ohne dass wir irgendetwas verknüpfen müssen.quelle
Da meine Architektur amd64 ist, gibt es keine
libc6-dev-amd64
. Das zu installierende Paket istlibc6-dev-i386
.Damit wurde die Abhängigkeit für ein CPAN-Paket behoben.
quelle