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

sky*_*gle 24 c c++ fastcgi makefile g++

我试图在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
Run Code Online (Sandbox Code Playgroud)

我注意到其他人有同样的问题,并在各种论坛等问过这个问题 - 然而,我还没有看到这个问题/问题的答案.

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

Öö *_*iib 43

EOF是一个C宏,似乎你没有在fcgio.cpp中定义它或者某些东西未定义它.我会先尝试添加#include <stdio.h>fcgio.cpp的开头.

  • 这不应该被报告为bug吗?似乎很难比忘记包含stdio更基本... (5认同)

Hom*_*tra 14

我在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 <iostream>
+#include <stdio.h>

 #include "fcgiapp.h"
Run Code Online (Sandbox Code Playgroud)