fcgio.cpp:50:错误:在此范围内未声明’EOF’

我试图在Linux Ubuntu 10.x机器上构建fastcgi。

我运行以下命令:

./configure make

我收到以下错误:

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 

我注意到其他人也遇到了同样的问题并在各种论坛上提出了这个问题 – 然而,我还没有看到这个问题/问题的答案。

有没有人设法在Linux上构建fastcgi? 我该如何解决这个问题?

EOF是一个C宏,似乎你没有在fcgio.cpp中定义它,或者某些东西未定义它。 我首先尝试添加#include 来启动fcgio.cpp。

我在Ubuntu 11.10 Linux 64bit上遇到了同样的问题。 按照@ paercebal的大部分建议,我创建了以下补丁来解决问题:

 --- 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  +#include  #include "fcgiapp.h" 

请改用-1代替

EOF在定义如下:

 #define EOF (-1) 

或者(更专业),您可以将以下代码放在main()或头文件中:

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