最近在折腾vps,在上面步骤ROR应用,部署方案还是用我倾向的Lighttpd + fcgi的方式,发现在编译安装fcig时出错,在网上搜也没有发现有价值的信息。
对于fcgi,我不管是用常规的 2.4.0版本,还是用最新的2.4.1(09年10月份发布的),都是出现如下的错误:
root@localhost:~/downloads/fcgi-2.4.1-SNAP-0910052249# ./configure --prefix=/usr/local/fcgi-2.4.1
这一步没有问题。
接下来
root@localhost:~/downloads/fcgi-2.4.1-SNAP-0910052249# make
make all-recursive
make[1]: Entering directory `/root/downloads/fcgi-2.4.1-SNAP-0910052249'
Making all in libfcgi
make[2]: Entering directory `/root/downloads/fcgi-2.4.1-SNAP-0910052249/libfcgi'
if /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -g -O2 -MT fcgio.lo -MD -MP -MF ".deps/fcgio.Tpo" -c -o fcgio.lo fcgio.cpp; \
then mv -f ".deps/fcgio.Tpo" ".deps/fcgio.Plo"; else rm -f ".deps/fcgio.Tpo"; exit 1; fi
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -g -O2 -MT fcgio.lo -MD -MP -MF .deps/fcgio.Tpo -c fcgio.cpp -fPIC -DPIC -o .libs/fcgio.o
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:113: error: 'EOF' was not declared in this scope
make[2]: *** [fcgio.lo] Error 1
make[2]: Leaving directory `/root/downloads/fcgi-2.4.1-SNAP-0910052249/libfcgi'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/downloads/fcgi-2.4.1-SNAP-0910052249'
make: *** [all] Error 2
root@localhost:~/downloads/fcgi-2.4.1-SNAP-0910052249#
我的gcc版本如下:
root@localhost:~/downloads/fcgi-2.4.1-SNAP-0910052249/include# gcc -v
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.1-4ubuntu8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu8)
root@localhost:~/downloads/fcgi-2.4.1-SNAP-0910052249/include#
我想这个fcgi开发一点也不活跃,而gcc的最新版本不断出来,很有可能是由于这方面引的原因,我又调整了一下关键字
gcc compile fcgi,(之前都是没有方向的搜索)。终于在第一条结果中找到原因了:http://bugs.gentoo.org/256654
解决办法:
在/include/fcgio.h文件中加上 #include <cstdio>,然后再编译安装就通过了。
分享到:
相关推荐
### GCC源代码编译安装详解 #### 一、前言 GCC(GNU Compiler Collection)是GNU项目下的一款开源编译器套件,包含了多种编程语言的前端和后端支持,如C、C++、Objective-C、Fortran、Ada、Go等。本文档将详细介绍...
GCC编译优化选项详解 GCC(GNU Compiler Collection)是GNU项目的一部分,用于将源代码转换为机器可执行的指令。GCC提供了丰富的编译优化选项,旨在提升程序的运行效率和代码大小,同时在一定程度上牺牲编译时间和...
windows平台arm-gcc编译环境搭建(资源包及搭建步骤,及测试demo) windows平台arm-gcc编译环境搭建(资源包及搭建步骤,及测试demo) windows平台arm-gcc编译环境搭建(资源包及搭建步骤,及测试demo) windows平台arm-...
标题 "适用于centos 8 的gcc编译环境" 指出我们要讨论的是在CentOS 8操作系统上安装和配置GCC编译环境的过程。GCC(GNU Compiler Collection)是GNU项目的一部分,它是一套包含了C、C++、Objective-C、Fortran、Ada...
资料合集中的"nordic52832 nordic使用gcc编译环境搭建和使用说明"文章可能会详细解释以上每一步,包括具体的命令行选项、配置文件设置以及常见问题的解决方法。对于初学者来说,这样的资源是非常宝贵的,因为它可以...
通过学习和实践这个项目,你可以深入理解STM32F103的开发环境配置、FreeRTOS的使用方法以及GCC交叉编译的技巧,这些都是嵌入式开发中不可或缺的基础知识。在实际应用中,你还可以扩展到更多功能,如网络通信、传感器...
Linux中的GCC(GNU Compiler Collection...总的来说,GCC 4.8.5在Linux环境中提供了一个强大且稳定的编译解决方案,尤其适合那些需要C++11标准支持的项目。配合GDB,开发者可以在开发过程中高效地进行代码调试和优化。
**GCC编译原理详解** GCC(GNU Compiler Collection)是GNU项目的一部分,是一个广泛使用的开源编译器套件,用于将源代码编译成可执行程序。这个压缩包包含的文件展示了GCC编译过程的不同阶段,让我们逐一分析这些...
### gcc编译时pow函数编译的问题及解决 #### 背景介绍 在使用`gcc`(GNU Compiler Collection)进行C语言程序编译时,可能会遇到与标准库函数相关的编译错误。其中,`pow`函数作为一种常用的数学运算函数,在进行...
这可能表示这是第一个版本或者某个特定版本的编译配置文件。 ### 描述:“gcc编译数据库” 此描述简明扼要地说明了文件的主题是关于GCC编译数据库。通常这样的文件会包含一系列编译指令,用以指导如何编译和链接...
avrgcc编译程序方法图解 avrgcc编译程序方法图解 avrgcc编译程序方法图解 avrgcc编译程序方法图解 avrgcc编译程序方法图解
提供了在干净的centos7下安装gcc和g++的编译环境,同时给出了相关的包路径和安装步骤。按着步骤安装就可以完成了特定的环境了
解决这个问题的方法是先安装缺失的库,然后再重新尝试编译。 2. **编译器错误**:如果编译器报错,需要仔细阅读错误信息,根据提示来定位并解决问题。有时候,错误可能是由于源码中的某个部分与编译器不兼容造成的。...
本文档将详细介绍如何在Linux环境下离线安装GCC(GNU Compiler Collection)7.2.0版本。GCC是一套由GNU项目开发的开源编译器集合,广泛应用于各种编程语言的编译工作,如C、C++等。GCC 7.2.0版本支持C11标准,适用于...
GCC 编译命令 Gcc 命令行详解 GCC 编译命令是 GCC 编译器的命令行接口,它提供了一系列选项和参数来控制编译过程。GCC 编译命令的基本格式为: gcc [options] [source_files] -o [output_file] 其中,options 是...
GCC 编译指南在 LINUX 下的使用方法 GCC 编译指南是 LINUX 下的一种编译工具,主要用于编译 C 语言程序。GCC 编译指南提供了多种参数选项,用于控制编译过程的各个阶段。下面对 GCC 编译指南的使用方法进行详细介绍...
本文将详细讲解Linux下GCC的编译过程,包括预处理、编译、汇编和链接四个阶段,并探讨相关的编译选项和优化原理。 1. 预处理 预处理是GCC处理C源代码的第一步,由cpp程序负责。在这个阶段,GCC执行以下操作: - ...
【安装部署】Linux安装gcc的四种方法 常见的有以下几种安装方法 1、源码安装 2、rpm包安装 3、yum安装 (RedHat、CentOS) 4、apt-get安装 (debian,ubuntu) 以安装gcc为例,登陆https://gcc.gnu.org/,下载...
首先,要开始编译C程序,你需要确保你的Linux系统已经安装了GCC。你可以通过运行`gcc --version`命令来检查是否已经安装。如果没有,你可以使用包管理器如`apt`(对于Ubuntu/Debian)或`yum`(对于CentOS/RHEL)来...
下载安装 VSCode 后,可以开始配置 GCC 编译环境。 1.2 安装插件 在 VSCode 中,需要安装 C/C++ 插件和 Cortex-Debug 插件。C/C++ 插件提供了语法高亮、代码补全、代码 refactoring 等功能,而 Cortex-Debug 插件...