美文网首页
Unix网络编程第一卷-3环境配置

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

作者: 想阳 | 来源:发表于2020-03-12 22:59 被阅读0次

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

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

    百度云下载链接:

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

    文件名字为unpv13e.tar.gz

    解压: tar -xvf unpv13e.tar.gz

    image.png

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

    1.     cd unpv13e
    2.     ./configure
    

    接下来是三次编译库

    cd unpv13e/lib
    make
    

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

    image.png
    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 这些字符
    

    相关文章

      网友评论

          本文标题:Unix网络编程第一卷-3环境配置

          本文链接:https://www.haomeiwen.com/subject/tgzvjhtx.html