unix网络编,mac下 unix网络编程环境安装

时间:2021-06-25 16:03 作者:IIS7 admin

    本机环境macos10.15.17
    1.下载安装包unpv13e
    下载地址http://www.unpbook.com/src.html
    2.解压后文件后,在终端通过命令进入unpv13e文件夹,依次执行下列命令
    在libfree下make报错
    inet_ntop.c:56:1:error:conflictingtypesfor‘inet_ntop’
    解决办法:
    在unpv13e/libfree下找到inet_ntop.c文件把#include注释掉
    最终会在unpv13e文件夹中成功生成libunp.a文件
    3.复制文件到相应路径
    libunp.a文件复制到usr/local/lib文件夹中
    -将unpv13e下的config.h和修改后的unpv13e/lib中的unp.h复制到usr/include文件夹中
    将unp.h中的#include“…/config.h”改为#include“config.h”
    具体命令如下
    可能会遇到的问题记录
    1.Operationnotpermitted:
    原因:这是因为rootless机制未关闭
    解决方法:
    重启Mac,开机时长按command+R进入恢复模式,在上面的实用工具中找到teriminal/终端,输入
    csrutildisable
    关闭rootless机制(如果要再开启输入csrutilenable即可)
    2.usr/include文件夹找不到:
    解决办法1:安装commandlineTools,在终端执行xcode-select--install
    解决办法2:如果安装commandlineTools不能解决,进行如下操作
    4.尝试编译例程
    确认libunp.a,unp.h,config.h已拷贝在相应文件夹下后,开始编译第一个例子daytimetcpcli.c;在unpv13e文件夹下,依次执行相应命令:
    cdintro
    gccdaytimetcpcli.c-odaytimetcpcli-lunp
    -lunp的含义,-l参数加上libunp.a去掉lib和后面的.a,链接静态库
    成功则在intro文件夹下生成了可执行文件a.out,测试:
    ./daytimetcpcli127.0.0.1
    这时返回错误如下:
    这个错误是由于daytime的服务程序未被打开
    解决办法:在unpv133/intro下编译daytimetcpsrv程序
    gccdaytimetcpsrv.c-odaytimetcpsrv-lunp
    sudo./daytimetcpsrv
    再次运行客户端程序,执行成功
    原文链接:https://blog.csdn.net/weixin_42255821/article/details/110420885