【问题标题】:compile c for fastcgi [closed]为fastcgi编译c [关闭]
【发布时间】:2010-04-25 07:22:16
【问题描述】:

我从 fastcgi.com 下载了 developerkit。该工具包有一个示例文件夹,其中包含一些源文件,它们是最终的、可运行的、已编译的文件。如果我将这些编译文件放在我的 apache 服务器(我的 macbook pro)上的 cgi-bin 文件夹中,添加扩展名 fcgi,然后转到它们所在的 url,它们运行完美。

我有一个测试 c 源文件,我想编译成一个 fastcgi 脚本。源文件只是打印 hello world。

有人对如何将源文件编译为可运行的 fcgi 文件有很好的参考或简单的解释吗?我不明白文档...

【问题讨论】:

  • 哪一部分?编写事件循环?调用编译器?
  • 我想将我的 c 文件中的 c 代码编译成可执行文件,就像他们在示例中那样。可以运行的东西。

标签: c compilation fastcgi


【解决方案1】:

将您的程序视为脚本是错误的。话虽如此,FastCGI 应用程序需要两件事:

  1. 能够向其传递请求的 Web 服务器(通常在端口 9000 上)
  2. FastCGI 库

大概,您已经安装了 FastCGI(包括共享对象和标头)并编写了一些使用它的东西。然后你可以通过以下方式编译它:

gcc -Wall -o myfastcgiapp -lfcgi myfastcgiapp.c

然后您需要配置您的 Web 服务器以启动它并向其传递请求。我很确定,根据您提供的有限信息,您忘记告诉链接器您正在使用来自 FastCGI 的符号(因此是 -Lfcgi)。

也可能是你没有正确安装库。

更多信息,例如:

  1. 正在使用 Web 服务器
  2. 编译器错误(如果有)
  3. 环境(操作系统)
  4. 为您的应用提供来源(尽可能)

... 确实有助于获得更好的答案。以下thread discussing the same under NginX 可能会对您有所帮助。不过,请考虑修改您的问题,即使这样可以解决您的问题。

【讨论】:

  • 太好了,我一直在寻找:gcc -Wall -o myfastcgiapp -Lfcgi myfastcgiapp.c 当我这样做时,我得到“ld:警告:未找到 -L 之后的目录 'fcgi'”。听起来我没有正确安装库。
  • @joels - 你是从源代码还是通过包管理器安装 fastcgi?
  • 应该是小写的 'l' 用于库中的链接。
  • 我下载了源代码,但我没有尝试过 make 或其他任何东西......
  • install-sh 文件告诉我没有指定输入文件,在运行 configure,然后 make 之后,我得到一堆“对于 `all' 什么都做不了。”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 2010-09-12
相关资源
最近更新 更多