2015-06-16 5 views
7

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?

Antwort

17

Stellen Sie sicher, dass die Xcode Kommandozeilen-Tools installiert haben: (. Übernehmen Sie das Pop-up-Dialog)

xcode-select --install 

Das System-Header in Standard-Standorte durch Tools wie gcc erwartet installieren , z.B /usr/include.

+0

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. –

+1

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. –

+0

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

Verwandte Themen