作为一个轻量级的web服务器,开源和其小巧的结构(500行代码),对于学习linux编程和理解掌握http server有很好的帮助.而且分析的文章很多.
第一步,获取源码:http://sourceforge.net/projects/tinyhttpd
第二步,编译.
在make的时候出现了如下两个错误:
1) /usr/bin/ld: cannot find -lsocket
这个错误在大多数编译这个文件时都遇到了,是因为在编译的参数里面添加了 -lsocket这个参数,实际上直接去掉就可以,在Makefile里面修改即可.
2) httpd.c:(.text+0x1a2f): undefined reference to `pthread_create'
这个错误的原因是 pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a.解决方案就是在编译中加入 -lpthread参数.但是有一个问题就是在我的机子上写的方式是:
gcc -g -W -Wall -lpthread -o httpd httpd.c
这样的话仍会出现上述错误.
而改成下面的格式错误就没有了.
gcc -g -W -Wall -o httpd httpd.c -lpthread
第三步,运行,看看结果
./httpd
之后在浏览器输入:localhost:13240/index.html查看结果即可.