Cygwin gcc nicht finden stdio.h
Ich habe ein 64 bit Cygwin auf meinem 64-bit Win7.
Ich installierte gcc-core und gcc-g++ - Pakete.
Habe ich ein einfaches C-Programm:
#include <stdio.h>
int main() {
exit(0);
}
wenn ich kompilieren mit: gcc-c test.c
ich habe:
fatal error: stdio.h: No such file or directory
Tun es mit -v
Flagge sehe ich:
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/include
/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/include-fixed
/usr/include
/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../lib/../include/w32api
End of search list.
GNU C (GCC) version 4.8.3 (x86_64-pc-cygwin)
Den stdio.h
kommt mit gcc-core-Paket ist auf meinem pc an diesem Standort (und das ist gut je nach Cygwin-Paket Sucher auch):
/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/include/ssp/stdio.h
Was es bedeutet, dass ssp
directory und warum stdio.h
dort platziert ?
Warum gcc nicht finden stdio.h
präsentieren an diesem Standort ?
- Ich nehme Ihre eigentliche Quell-Datei hat
#include <stdio.h>
, nicht#include <stdio.h>
. Ich habe Feste Ihre Frage Formatierung; bitte stellen Sie sicher, dass es noch genau. Undexit
erfordert#include <stdlib.h>
, obwohl das nicht die Ursache für dein problem. - Sollten Sie fügen Sie eine include-Verzeichnis als Wumpus F. Wumbley darauf hingewiesen: das ist nicht die Datei, die Sie wollen.
- Thompson: du hast Recht, ich habe den Fehler, während ich bearbeitet die post
- Inzwischen habe ich eine Cygwin-Installation auf einer anderen Maschine und gcc fein gearbeitet. Als Wumpus Q sagte, ich sah es ein
/usr/include/stdio.h
was fehlt auf meinem Rechner. Ich auch nicht haben-string.h und stdlib.h in/usr/include/
auf meinem Rechner. So ging etwas beschädigt während der cygwin-devel war installiert ??? Die cygwin-setup meldet cygwin-devel-Paket installiert (Halten) allerdings habe ich 85-Dateien in /usr/include/ bei meiner Maschine im Vergleich zu 112, die ich auf den anderen Computer funktioniert - Ja : ` cygcheck -c cygwin-devel Cygwin-Paket Information Package Version Status cygwin-devel 1.7.33-1 Unvollständig `
- klicken Sie auf "Halten", bis es sagt "Installieren" und beenden Sie das setup und sehen, ob das behebt es
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Datei, die Sie finden in der
ssp
Verzeichnis ist nicht eine version von<stdio.h>
. Es enthält nur zusätzliche Informationen über einige der Funktionen in<stdio.h>
für die stack-smash-protector-Funktion im gcc.Den tatsächlichen
<stdio.h>
sollte in/usr/include
.Diese Zeile in deiner
-v
Ausgabe ist sehr interessant:Wie du an einen
/usr/inlude
ohnec
?Hoppla, die fehlende
c
iminlude
wurde gelöscht edit by Keith Thompson.Also dein gcc sollte der Suche nach
/usr/include/stdio.h
wenn Sie es haben. Ist es dort? So weit wie ich kann sagen, aus der Paket-Datei-Listen, es ist eigentlich ein Teil der cygwin-Basis-system (also auch wenn Sie noch nicht installiert hat, der compiler sollte da sein).Sind Sie fehlen alle anderen header-Dateien?
<stdlib.h>
und<string.h>
sind gute Testkandidaten.Hier sind einige Befehle zu untersuchen, die die cygwin-Paket und ob es die Datei enthält:
UPDATE:, so scheint es, ich bin hinter der Zeit, und es gibt eine
cygwin-devel
- Paket jetzt. Die header Dateien sind nicht in der Basiscygwin
Paket nicht mehr. Überprüfen Sie die korrekte Paket auf dem aktuellsten cygwin, die Sie verwenden würden,wie bereits in den Kommentaren. Und da ist es aufgeführt als "unvollständig" und die Lösung ist wahrscheinlich neu installieren Sie es mit cygwin setup-Programm.