Ответ 1
EOF является макросом C и кажется, что вы его не определили в fcgio.cpp или что что-то имеет undefined его. Сначала я попытаюсь добавить #include <stdio.h>
в начало fcgio.cpp.
Я пытаюсь построить fastcgi на машине Linux Ubuntu 10.x.
Я запускаю следующие команды:
./настроить сделать
и я получаю следующую ошибку:
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
Я замечаю, что у других была такая же проблема, и они задавали этот вопрос на разных форумах и т.д., однако я еще не видел ответа на этот вопрос/проблему.
Кому-нибудь удалось создать fastcgi на Linux? Как исправить эту проблему?
EOF является макросом C и кажется, что вы его не определили в fcgio.cpp или что что-то имеет undefined его. Сначала я попытаюсь добавить #include <stdio.h>
в начало 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 <iostream>
+#include <stdio.h>
#include "fcgiapp.h"
Используйте -1
вместо
EOF определяется в <stdio.h>
следующим образом:
#define EOF (-1)
или (более профессионально), вы можете поместить следующий код над своим основным() или внутри вашего файла заголовка:
#ifndef EOF
#define EOF (-1)
#endif