Unix网络编程第一卷-3环境配置

Unix网络编程第一卷-第三版环境配置

首先我们先将本书中的所有样例下载下来

百度云下载链接:

链接:https://pan.baidu.com/s/1IjBM3QS4bnW43DZClpD2MQ 提取码:wjfg

文件名字为unpv13e.tar.gz

解压: tar -xvf unpv13e.tar.gz

Unix网络编程第一卷-3环境配置_第1张图片
image.png

检查系统是否有源码编译依赖的各种资源

1.     cd unpv13e
2.     ./configure

接下来是三次编译库

cd unpv13e/lib
make

执行完make之后我们会在unpv13e目录下得到一个libunp.a的静态库文件

Unix网络编程第一卷-3环境配置_第2张图片
image.png
cd unpv13e/libfree
make

在这个库中会出现错误,如图

Unix网络编程第一卷-3环境配置_第3张图片
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位,所以不会出错。

Unix网络编程第一卷-3环境配置_第4张图片
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 这些字符

你可能感兴趣的:(Unix网络编程第一卷-3环境配置)