2011-01-02 9 views
23

Próbuję zbudować fastcgi na maszynie Linux Ubuntu 10.x.fcgio.cpp: 50: error: 'EOF' nie został zadeklarowany w tym zakresie

uruchomić następujące polecenia:

./configure zrobić

i pojawia się następujący błąd:

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 

Zauważyłem, że inni mieli ten sam problem i prosić to pytanie na różnych forach itp. - jednak jeszcze nie widziałem odpowiedzi na to pytanie/problem.

Czy ktoś kiedykolwiek zdołał zbudować fastcgi na Linuksie? Jak naprawić ten problem?

Odpowiedz

42

EOF jest makrem C i wydaje się, że nie ma go zdefiniowanego w fcgio.cpp lub że coś go niezdefiniowało. Najpierw spróbuję dodać #include <stdio.h>, aby rozpocząć fcgio.cpp.

+5

Czy nie powinno to być zgłaszane jako błąd? Wydaje się, że trudno jest uzyskać bardziej podstawowe niż zapomnienie o włączeniu stdio ... – labyrinth

+0

Sprawdź licencje w nagłówkach. Niektóre pliki nie są dozwolone, ponieważ są "tajne dla OpenMarket lub Copyright 2001 Tux Linux Pengiun". – unixman83

+1

Jak wysłać im wiadomość e-mail? : Problem polegał na tym, że nie mogłem go znaleźć (może się mylę) – PicoCreator

14

Miałem ten sam problem na Ubuntu 11.10 Linux 64bit. W następstwie większość użytkownika @ paercebal poradę stworzyłem następujące poprawki, które rozwiązały problem:

--- 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

dziękuję, stosując go jako łatkę znacznie szybciej – rage

-1

Używaj -1 zamiast

EOF jest zdefiniowana w <stdio.h> następująco:

#define EOF (-1) 

lub (bardziej profesjonalnie) możesz umieścić następujący kod nad swoim głównym() lub wewnątrz pliku nagłówka:

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

Wskazujesz, że EOF jest zdefiniowany w stdio.h, dlaczego nie zasugerować #include (jak wspomnieli inni respondenci)? – Brandin