Ich versuche, ein Programm in C unter OS X 10.9 mit GCC 4.9 (experimentell) zu kompilieren. Aus irgendeinem Grund wird beim Kompilieren der folgende Fehler angezeigt:
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;
}
Beim Laufen gcc -o ~/hello ~/hello.c
bekam ich wieder den gleichen Fehler. Ich verwende eine experimentelle Version von gcc
, aber es scheint unplausibel, dass es eine Version geben würde, die beim Import Fehler erzeugt stdio
. Was könnte dieses Problem verursachen und wie kann es behoben werden?
echo "#include <bogus.h>" | gcc -v -x c -
indem Sie die Suchpfade ausführen und untersuchen.stdio.h
es sich in einem der Suchpfade von GCC befindet.int main
der erste Parameter ein int und nicht int * argc.sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include
Antworten:
Mac OS X
Ich hatte auch dieses Problem (durch Macports-Compiler angetroffen). 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:
Ubuntu
(gemäß dieser Antwort )
Alpines Linux
(gemäß diesem Kommentar )
quelle
sudo xcode-select -s /Applications/Xcode.app
. Wenn Sie fertig sind, wechseln Sie zurück mitsudo xcode-select -s /Applications/Xcode6-Beta5.app
.Mac OS Mojave
Die akzeptierte Antwort funktioniert nicht mehr. Wenn Sie den Befehl
xcode-select --install
ausführen, werden Sie aufgefordert, "Software-Update" zum Installieren von Updates zu verwenden.In diesem Link befindet sich die aktualisierte Methode:
Öffnen Sie ein Terminal und dann:
Dadurch wird ein Installationsassistent geöffnet.
Update 12/2019
Nach dem Update auf Mojave 10.15.1 scheint die Verwendung
xcode-select --install
wie beabsichtigt zu funktionieren.quelle
Ubuntu-Benutzer:
sudo apt-get install libc6-dev
Besonders Ruby-Entwickler, die Probleme bei der Installation
gem install json -v '1.8.2'
auf ihren VMs habenquelle
apk add libc-dev
Ich hatte das gleiche Problem. Ich habe "XCode: Entwicklungstools" aus dem App Store installiert und das Problem für mich behoben.
Ich denke, dieser Link wird helfen: https://itunes.apple.com/us/app/xcode/id497799835?mt=12&ls=1
Dank 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!
quelle
Ich weiß, dass mein Fall selten ist, aber ich werde ihn hier noch für jemanden hinzufügen, der ihn später behebt. Ich hatte ein Linux-Kernel-Modulziel 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.
quelle