Unter OSX kann ich nicht einfache Programme von der Befehlszeile kompilieren, wenn ich einen extern bereitgestellten Compiler (z. B. gcc-4.8) verwende. System-Header wie limits.h
können nicht gefunden werden.Schwerwiegender Fehler: limits.h: Keine solche Datei oder Verzeichnis
Beispiel Fehlermeldungen:
fatal error: limits.h: No such file or directory
Oder:
fatal error: stdio.h: No such file or directory
und so weiter.
Was ist los?
gcc sollte seine eigenen Headerdateien installiert haben, die es zu finden weiß. Die Verwendung von Header-Dateien von einem Compiler (clang, von Xcode) mit einem anderen Compiler (gcc, separat installiert), ist sehr wahrscheinlich ein Problem. –
gcc installiert seine eigenen C++ - Header, aber für C-Header ist die Geschichte anders. Es versucht, die systemeigenen C-Header zu verwenden. Auf einigen (ok, vielen) Systemen sind die C-Header nicht ANSI-konform, daher wird gcc eigene "feste" Header bereitstellen, um einige der "defekten" Systemheader zu ersetzen. Aber für diese Header, die nicht "repariert" werden müssen, wird es keine gcc-Kopie davon geben. Nur der ursprüngliche Systemkopf wird verwendet. Weitere Informationen finden Sie in der Dokumentation zum Schritt gcc "fix-includes", wenn gcc von der Quelle kompiliert wird. –
Ich habe diese Fehler gefunden, wenn ich manuell einige einzelne Pakete installieren wollte. Ich benutze Python 2.7 mit Conda als Umgebungsmanager und habe gcc 5.0 in Mac OS x 10.12.3 Sierra installiert. Soweit ich mich erinnere, waren meine gcc und Kommandozeilen-Tools perfekt installiert und laufen. Wie auch immer, sie neu zu installieren, lösen Sie das Problem. – Hugo