1.下载UNP官方代码:
http://www.unpbook.com/src.html
2.终端进入下载目录,解压下载的unpv13e.tar.gz文件:
# tar
3.终端中进入unpv13e目录,执行代码
# ./configure
# cd lib
#make
过程中如果显示,系统没有GCC,则先安装编译器GCC
对于centos/fedora系统,终端执行指令: yum -y install gcc
对于debian/ubuntu系统,终端执行指令: sudo apt-get install build-essential
4.终端进入libfree目录后,执行指令make:
# cd ../libfree
# make
然后在unpv13e文件夹中成功生成libunp.a文件
该过程中如果出现该错误:
inet_ntop.c:61: error: argument ’size’ doesn’t match prototype
/usr/include/arpa/inet.h:153: error: prototype declaration
则在libfree目录下:修改inet_ntop.c ,第60行 size_t size ->改成 socklen_t size 即可
5.将在unpv13e下生成的libunp.a静态库复制到/usr/lib/中
# cd ..
# cp
6.修改unp.h并将其和config.h拷贝到/usr/include中
# vim
# cp
# cp
7.进入unpv13e/intro目录,编译UNP书上的第一个源代码,在当前目录下生成daytimetcpcli文件:
# cd ./intro
# gcc daytimetcpcli.c -o daytimetcpcli -lunp
(gcc:编译指令,daytimetcpcli.c:源代码,-o: 参数,指定输出代码名字为daytimetcpcli , -lunp:参数,就是添加一个外连接,连接到unp.h上。本来是libunp.a ,需写成-lunp,不能写成-llibunp.a 或 -lunp.a 或 -llibunp;否则都会出现找不到指定的库 )
8. 执行daytimetcpcli文件,UNP书上第一个程序完成。
# ./daytimetcpcli