2011-01-02 17 views
23

Estoy intentando compilar fastcgi en una máquina Linux Ubuntu 10.x.fcgio.cpp: 50: error: 'EOF' no se ha declarado en este ámbito

que ejecute los siguientes comandos:

./configure hacer

y me sale el siguiente error:

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 

noto que otros han tenido el mismo problema y han hecho esta pregunta en varios foros, etc., sin embargo, aún no he visto una respuesta a esta pregunta/problema.

¿Alguien ha logrado construir fastcgi en Linux? ¿Cómo puedo solucionar este problema?

Respuesta

42

EOF es una macro C y parece que no la tiene definida en fcgio.cpp o que algo no la ha definido. Primero trataría de agregar #include <stdio.h> al inicio de fcgio.cpp.

+5

¿No debería ser reportado como un error? Parece difícil obtener más básico que olvidar incluir stdio ... – labyrinth

+0

Compruebe las licencias en los encabezados. Algunos de los archivos que ni siquiera podemos usar porque son "secretos para OpenMarket o Copyright 2001, Tux Linux Pengiun". – unixman83

+1

¿Qué tal enviándoles un correo electrónico sobre esto? : El problema fue que no pude encontrar uno (puedo estar equivocado) – PicoCreator

14

Tuve el mismo problema en Ubuntu 11.10 Linux 64bit. A raíz de la mayor parte de consejos de @ paercebal creé el siguiente parche que se resolvió el problema:

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

gracias, aplicándolo como un parche lo hizo mucho más rápido – rage

-1

Uso -1 lugar

EOF se define en <stdio.h> de la siguiente manera:

#define EOF (-1) 

o (más profesionalmente) , puede colocar el siguiente código sobre su archivo principal() o dentro de su encabezado:

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

Usted señala que EOF se define en stdio.h, ¿por qué no simplemente sugiere #include (como los otros respondedores mencionados)? – Brandin

Cuestiones relacionadas