web-dev-qa-db-ja.com

fcgio.cpp:50:エラー:「EOF」はこのスコープで宣言されていません

Linux Ubuntu10.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を構築できた人はいますか?この問題を解決するにはどうすればよいですか?

24
skyeagle

EOFはCマクロであり、fcgio.cppで定義されていないか、何かで定義されていないようです。まず、fcgio.cppの先頭に#include <stdio.h>を追加しようとします。

43
Öö Tiib

Ubuntu 11.10 Linux64ビットでも同じ問題が発生しました。 @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"
14
Homme Zwaagstra