Schwerwiegender GCC-Fehler: stdio.h: Keine solche Datei oder kein solches Verzeichnis

Lesezeit: 5 Minuten

Benutzeravatar von Jules
Jules

Ich versuche, ein Programm in C unter OS X 10.9 mit GCC 4.9 (experimentell) zu kompilieren. Aus irgendeinem Grund erhalte ich beim Kompilieren den folgenden Fehler:

gcc: fatal error: stdio.h: No such file or directory

Ich habe dann ein einfaches Hello World-Programm ausprobiert:

#include <stdio.h>

int main(int argc, const char *argv[])
{
    printf("Hello, world!");
    return 0;
}

Wieder beim Laufen gcc -o ~/hello ~/hello.c, ich habe den gleichen Fehler. Ich verwende eine experimentelle Version von gccaber es scheint unwahrscheinlich, dass es ein Release gibt, das beim Import Fehler erzeugt stdio. Was könnte dieses Problem verursachen und wie kann es behoben werden?

  • Sie können sehen, wo gcc nach Header-Dateien sucht, indem Sie dies tun echo "#include <bogus.h>" | gcc -v -x c - und Untersuchen der Suchpfade.

    – Christian Ternus

    25. Oktober 2013 um 3:53 Uhr

  • Sehr nützlicher Befehl! Es sieht nicht danach aus stdio.h sich in einem der Suchpfade von GCC befindet.

    – Jules

    25. Oktober 2013 um 3:56 Uhr

  • Mavericks hat keine Basis mehr /usr/include. Sie müssen es mit dem XCode OS 10.9 SDK verknüpfen.

    – Jan Ramin

    25. Oktober 2013 um 3:57 Uhr

  • Übrigens, int mainDer erste Parameter von ist ein int und nicht int *argc.

    – p0lAris

    25. Oktober 2013 um 3:57 Uhr

  • @ user2615799 Es ist um sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include

    – Jan Ramin

    25. Oktober 2013 um 15:11 Uhr


Benutzeravatar von amos
Amos

Mac OS

Ich hatte dieses Problem auch (das durch Macports-Compiler aufgetreten ist). In früheren Versionen von Xcode konnten Sie Befehlszeilentools über xcode/Preferences installieren, aber xcode5 bietet keine Option für Befehlszeilentools in der GUI, sodass ich davon ausgegangen bin, dass sie jetzt automatisch enthalten ist. Versuchen Sie, diesen Befehl auszuführen:

xcode-select --install

Wenn Sie eine Fehlermeldung sehen, dass Entwicklertools bereits installiert sind (und immer noch keine Header-Dateien gefunden werden können), löschen Sie alle vorhandenen, um eine Neuinstallation durchzuführen:

sudo rm -rf /Library/Developer/CommandLineTools

Ubuntu

(gemäß dieser Antwort)

sudo apt-get install libc6-dev

Alpines Linux

(laut diesem Kommentar)

apk add libc-dev

  • Wenn Sie Xcode 6 Beta 5 verwenden, schlägt dieser Befehl möglicherweise fehl. In diesem Fall müssen Sie tun sudo xcode-select -s /Applications/Xcode.app. Wenn Sie fertig sind, wechseln Sie mit zurück sudo xcode-select -s /Applications/Xcode6-Beta5.app.

    – Sjors Provoost

    7. August 2014 um 16:54 Uhr

  • Wow. Arbeite 2017 immer noch mit Xcode 8.0 und Sierra.

    – Benutzer124384

    22. April 2017 um 15:45 Uhr

  • Alpine Guide ist äußerst nützlich für Docker-Images, die auf Alpine-Distributionen basieren, funktioniert wie gewünscht

    – VanDavv

    21. August 2018 um 15:31 Uhr

  • Irgendwelche Vorschläge für Windows-Benutzer? Ich habe dieses Problem unter Windows

    – Ratul Hassan

    24. Juli 2020 um 5:32 Uhr

  • Für macOS-Benutzer, die nach der Installation von CLTs immer noch Probleme haben stackoverflow.com/questions/63342521/…

    Benutzer10063119

    16. Oktober 2020 um 12:48 Uhr

Benutzeravatar von Samshel
Samschel

Mac OS Mojave

Die akzeptierte Antwort funktioniert nicht mehr. Beim Ausführen des Befehls xcode-select --install Es sagt Ihnen, dass Sie “Software-Update” verwenden sollen, um Updates zu installieren.

In diesem Verknüpfung ist die aktualisierte Methode:

Öffnen Sie ein Terminal und dann:

cd /Library/Developer/CommandLineTools/Packages/
open macOS_SDK_headers_for_macOS_10.14.pkg

Dies öffnet einen Installationsassistenten.

Aktualisierung 12/2019

Nach dem Update auf Mojave 10.15.1 scheint die Verwendung von xcode-select --install funktioniert wie vorgesehen.

  • Die Neuinstallation der Header funktioniert auch beim Upgrade auf Xcode 10.2.

    – Bojan Dimowski

    27. März 2019 um 12:58 Uhr

  • Wenn ich macOS_SDK_headers_for_macOS_10.14.pkg öffne, erhalte ich eine beängstigende Warnung vom Installationsprogramm: „Dieses Paket ist mit dieser Version von macOS nicht kompatibel und kann möglicherweise nicht installiert werden.“ Ich habe Mojave.

    – Steve Siegel

    6. Dezember 2019 um 17:34 Uhr

  • @SteveSiegel welche Mac OS-Version verwendest du? Ich habe auf 10.15.1 aktualisiert und musste diese Problemumgehung nicht mehr durchführen. Meine Antwort wurde aktualisiert, um dies widerzuspiegeln.

    – Samschel

    7. Dezember 2019 um 19:57 Uhr

  • “Aktualisierung auf Mojave 10.15.1”, das ist falsch. @SteveSiegel Das Paket ist veraltet. SDKROOT sollte verwendet werden. stackoverflow.com/a/63343829/10063119

    Benutzer10063119

    10. August 2020 um 16:37 Uhr


Ubuntu-Benutzer:

sudo apt-get install libc6-dev

besonders Ruby-Entwickler, die Probleme bei der Installation haben gem install json -v '1.8.2' auf ihren VMs

  • Interessant. Vielen Dank. Diese Bibliothek löst auch einige andere Probleme. Kürzlich bin ich darauf gestoßen, als ich versuchte, einen Benchmark für petabyte.com (das gcc verwendet) auszuführen.

    – dhaupin

    23. August 2016 um 18:24 Uhr

  • Auf Alpine Linux brauchte ich apk add libc-dev

    – Schadi

    28. Januar 2017 um 9:29 Uhr

Ich weiß, dass mein Fall selten ist, aber ich werde ihn trotzdem hier für jemanden hinzufügen, der ihn später behebt. Ich hatte ein Ziel für ein Linux-Kernel-Modul in meinem Makefile und habe versucht, mein User-Space-Programm zusammen mit dem Kernel-Modul zu kompilieren, das kein stdio hat. Es zu einem separaten Ziel zu machen, löste das Problem.

Ich hatte das gleiche Problem. Ich habe “XCode: Development Tools” aus dem App Store installiert und es hat das Problem für mich behoben.

Ich denke dieser Link hilft weiter:
https://itunes.apple.com/us/app/xcode/id497799835?mt=12&ls=1

Danke an Yann Ramin für seinen Rat. Ich denke, es gibt eine bessere Lösung mit Links, aber das war einfach und schnell.

Viel Glück!

  • Beziehen Sie sich auf nur normalen Xcode? Oder gibt es eine spezielle Version namens “XCode: Development Tools”? Weil ich im App Store nur normalen Xcode sehe. Zugegeben, dies liegt 4 Jahre in der Zukunft, seit diese Antwort veröffentlicht wurde.

    – Benutzer124384

    22. April 2017 um 15:36 Uhr

  • Beziehen Sie sich auf nur normalen Xcode? Oder gibt es eine spezielle Version namens “XCode: Development Tools”? Weil ich im App Store nur normalen Xcode sehe. Zugegeben, dies liegt 4 Jahre in der Zukunft, seit diese Antwort veröffentlicht wurde.

    – Benutzer124384

    22. April 2017 um 15:36 Uhr

1422250cookie-checkSchwerwiegender GCC-Fehler: stdio.h: Keine solche Datei oder kein solches Verzeichnis

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy