Unix网络编程第一卷-第三版环境配置
首先我们先将本书中的所有样例下载下来
image.png百度云下载链接:
链接:https://pan.baidu.com/s/1IjBM3QS4bnW43DZClpD2MQ 提取码:wjfg
文件名字为unpv13e.tar.gz
解压: tar -xvf unpv13e.tar.gz
检查系统是否有源码编译依赖的各种资源
1. cd unpv13e
2. ./configure
接下来是三次编译库
cd unpv13e/lib
make
image.png执行完make之后我们会在unpv13e目录下得到一个libunp.a的静态库文件
cd unpv13e/libfree
make
在这个库中会出现错误,如图
image.png具体表示在inet_ntop.c文件下,第60行的size有问题
第二个error的错误是由第一个引起的,只需要修改第一个问题
具体修改措施是:将libfree下的inet_ntop.c文件的第60行由size_t size; 改为 socklen_t size;重新在libfree目录下make 即可成功
此处出错的原因可能是因为这本书适用于32位的机器,您的机器是64位,而size_t在64位机器上表示的是64位,在32位机器,size_t才能表示32位不会出错,socklen_t无论是在那个机器都是表示32位,所以不会出错。
image.png
cd unpv13e/libgai
make
将得到的静态库与一些头文件添加到系统目录中
我们首先修改一下unp.h ,此文件位于 unpv13e/lib目录
修改:将#include “../config.h”修改为 #include “config.h”原因在于我们即将unp.h头文件与config.h头文件放在一个文件夹中。
拷贝头文件与库文件
#库文件
sudo cp unpv13e/libunp.a /usr/local/lib
#头文件
sudo cp unpv13e/config.h /usr/local/include
sudo cp unpv13e/lib/unp.h /usr/local/include
运行一个文件
运行unpv13e/intro/daytimetcpsrv.c文件
gcc daytimetcpsrv.c -o daytimetcpsrv -lunp
#-o 指定生成的目标文件的名字 -l 指定使用的库 我们这里指定的是libunp.a 指定的时候可以去除lib .a 这些字符
网友评论