《 UNIX 网络编程》源码编译、环境搭建
源码下载
README文件
下载好的源码包,解压,有README
文件,根据文件说明,按照需求进行相关操作。
./configure
cd /lib
make
cd /libfree
make
在进入libfree
文件夹make
时可能会出错,提示
inet_ntop.c:60:9: error: argument 'size' doesn't match prototype
size_t size;
打开inet_ntop.c
文件,定位到 60 行,将size_t
修改为socklen_t
类型。再次执行make
。
学习环境搭建
将生成的静态库复制到系统库目录中,方便使用。
sudo cp libunp.a /usr/lib
sudo cp libunp.a /usr/lib32 (或者是lib64,根据自己机器情况)
将头文件unp.h
和config.h
复制到系统头文件目录,方便使用。
先将unp.h
文件中#include "../config.h"
修改为#include "config.h"
sudo cp lib/unp.h /usr/include
sudo cp config.h /usr/include
编译书中第一个例子程序,链接生成的静态库。
cd intro
gcc daytimetcpcli.c -o daytimetcpcli -lunp
开启daytime
服务
sudo apt-get install xinetd
#修改配置文件,将 disable 值 改为 no
sudo gedit /etc/xinetd.d/daytime
# 重启 xineted 服务
service xinetd restart
测试daytimetcpcli
程序
./daytimetcpcli 127.0.0.1
正常返回时间则搭建成功。
以后使用时只需正常include头文件unp.h,编译链接unp库即可。