2011-01-02 37 views
23

Tôi đang cố gắng xây dựng fastcgi trên máy Linux 10.x Ubuntu.fcgio.cpp: 50: lỗi: 'EOF' không được khai báo trong phạm vi này

tôi chạy các lệnh sau:

./configure làm

và tôi nhận được lỗi sau:

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 

tôi nhận thấy rằng những người khác đã có cùng một vấn đề và đã yêu cầu này câu hỏi trong khác nhau fora vv - tuy nhiên, tôi chưa có, nhìn thấy một câu trả lời cho câu hỏi/vấn đề này.

Có ai từng quản lý để xây dựng fastcgi trên Linux không? Làm cách nào để khắc phục sự cố này?

Trả lời

42

EOF là macro C và có vẻ như bạn không xác định nó trong fcgio.cpp hoặc có điều gì đó chưa được xác định. Trước tiên tôi sẽ thử thêm #include <stdio.h> để bắt đầu fcgio.cpp.

+5

Không nên báo cáo lỗi này? Có vẻ khó để có được cơ bản hơn là quên để bao gồm stdio ... – labyrinth

+0

Kiểm tra giấy phép trên các tiêu đề. Một số tệp chúng tôi thậm chí không được phép sử dụng vì chúng là "bí mật đối với OpenMarket hoặc Bản quyền 2001 của Tuxi Peng Tuxun". – unixman83

+1

Làm cách nào để gửi email cho họ? : Vấn đề là, tôi không thể tìm thấy một (tôi có thể sai) – PicoCreator

14

Tôi gặp sự cố tương tự trên Ubuntu 11.10 Linux 64bit. Sau nhất của lời khuyên @ paercebal của tôi tạo ra các bản vá sau đó giải quyết vấn đề:

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

cảm ơn, áp dụng nó như là một miếng vá làm cho nó nhanh hơn nhiều – rage

-1

Sử dụng -1 thay

EOF được định nghĩa trong <stdio.h> như sau:

#define EOF (-1) 

hoặc (chuyên nghiệp hơn) , bạn có thể đặt mã sau ở trên chính() hoặc bên trong tệp tiêu đề của bạn:

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

Bạn chỉ ra rằng EOF được định nghĩa trong stdio.h, tại sao không chỉ gợi ý #include (như những người trả lời khác đã đề cập)? – Brandin

Các vấn đề liên quan