2011-01-02 7 views
23

Ich versuche Fastcgi auf einem Linux Ubuntu 10.x-Rechner zu erstellen.fcgio.cpp: 50: Fehler: 'EOF' wurde in diesem Bereich nicht deklariert

ich die folgenden Befehle:

configure

machen und ich erhalte den folgenden Fehler:

fcgio.cpp: In destructor 'virtual fcgi_streambuf::~fcgi_streambuf()': 
fcgio.cpp:50: error: 'EOF' was not declared in this scope 
fcgio.cpp: In member function 'virtual int fcgi_streambuf::overflow(int)': 
fcgio.cpp:70: error: 'EOF' was not declared in this scope 
fcgio.cpp:75: error: 'EOF' was not declared in this scope 
fcgio.cpp: In member function 'virtual int fcgi_streambuf::sync()': 
fcgio.cpp:86: error: 'EOF' was not declared in this scope 
fcgio.cpp:87: error: 'EOF' was not declared in this scope 
fcgio.cpp: In member function 'virtual int fcgi_streambuf::underflow()': 
fcgio.cpp:107: error: 'EOF' was not declared in this scope 
make[2]: *** [fcgio.lo] Error 1 
make[2]: Leaving directory `/somepath/fcgi-2.4.0/libfcgi' 
make[1]: *** [all-recursive] Error 1 
make[1]: Leaving directory `/somepath/fcgi-2.4.0' 
make: *** [all] Error 2 

Ich bemerke, dass andere haben das gleiche Problem hatte und haben dies gefragt Frage in verschiedenen Foren usw. - aber ich habe noch keine Antwort auf diese Frage/Problem gesehen.

Hat es jemals jemand geschafft, fastcgi unter Linux zu bauen? Wie behebe ich dieses Problem?

Antwort

42

EOF ist ein C-Makro und scheint, dass Sie es nicht in fcgio.cpp definiert haben oder dass etwas nicht definiert ist. Ich würde zuerst versuchen, #include <stdio.h> zum Start von fcgio.cpp hinzuzufügen.

+5

Sollte dies nicht als Fehler gemeldet werden? Es scheint schwierig zu sein, grundlegender zu werden, als zu vergessen, stdio ... – labyrinth

+0

Überprüfen Sie die Lizenzen in den Kopfzeilen. Einige der Dateien, die wir nicht benutzen dürfen, weil sie "geheim zu OpenMarket oder Copyright 2001 der Tux Linux Pengiun" sind. – unixman83

+1

Wie schicke ich ihnen eine E-Mail darüber? : Das Problem war, ich konnte nicht einen finden (ich kann falsch liegen) – PicoCreator

14

Ich hatte das gleiche Problem auf Ubuntu 11.10 Linux 64bit. Im Anschluss an die meisten @ paercebal Rat habe ich den folgenden Patch, der das Problem behoben:

--- include/fcgio.h 2012-01-23 15:23:51.136063795 +0000 
+++ include/fcgio.h 2012-01-23 15:22:19.057221383 +0000 
@@ -31,6 +31,7 @@ 
#define FCGIO_H 

#include <iostream> 
+#include <stdio.h> 

#include "fcgiapp.h" 
+0

danke, es als ein Patch anwenden machte es viel schneller – rage

-1

Verwenden -1 statt

EOF ist in <stdio.h> wie folgt definiert:

#define EOF (-1) 

oder (beruflich) Sie können den folgenden Code über Ihre main() oder in Ihre Header-Datei einfügen:

#ifndef EOF 
#define EOF (-1) 
#endif 
+2

Sie weisen darauf hin, dass EOF in stdio.h definiert ist, warum nicht einfach vorschlagen, #include (wie die anderen Beantworter erwähnt)? – Brandin