mac下 unix网络编程环境安装
mac下 unix网络编程环境安装
- 1.下载安装包unpv13e
- 2.解压后文件后,在终端通过命令进入unpv13e文件夹,依次执行下列命令
- 3.复制文件到相应路径
- 4.尝试编译例程
本机环境 mac os 10.15.17
1.下载安装包unpv13e
下载地址http://www.unpbook.com/src.html
2.解压后文件后,在终端通过命令进入unpv13e文件夹,依次执行下列命令
./configurecd lib
makecd../libfree
make
- 在libfree下make报错
inet_ntop.c:56:1: error: conflicting types for ‘inet_ntop’
解决办法:
在unpv13e/libfree下找到inet_ntop.c文件把#include <arpa/inet.h>注释掉
最终会在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”
具体命令如下
sudo cp libunp.a /usr/local/lib
sudo cp lib/unp.h /usr/include
sudo cp config.h /usr/include
- 可能会遇到的问题记录
1.Operation not permitted:
原因:这是因为rootless机制未关闭
解决方法:
重启Mac,开机时长按command+R进入恢复模式,在上面的实用工具中找到teriminal/终端,输入
csrutil disable
关闭rootless机制(如果要再开启输入csrutil enable即可)
2.usr/include文件夹找不到:
解决办法1:安装command line Tools,在终端执行xcode-select --install
解决办法2:如果安装command line Tools不能解决,进行如下操作
#根目录挂载为可读写
sudo mount -uw /#建立软链
sudo ln -s "$(xcrun --show-sdk-path)/usr/include" /usr/include
4.尝试编译例程
确认libunp.a,unp.h,config.h已拷贝在相应文件夹下后,开始编译第一个例子daytimetcpcli.c;在unpv13e文件夹下,依次执行相应命令:
cd intro
gcc daytimetcpcli.c -o daytimetcpcli -lunp
- -lunp的含义,-l 参数加上 libunp.a 去掉lib和后面的.a,链接静态库
成功则在intro文件夹下生成了可执行文件a.out,测试:
./daytimetcpcli 127.0.0.1
这时返回错误如下:
这个错误是由于daytime的服务程序未被打开
- 解决办法:在unpv133/intro下编译daytimetcpsrv程序
gcc daytimetcpsrv.c -o daytimetcpsrv -lunp
sudo ./daytimetcpsrv
再次运行客户端程序,执行成功
mac下 unix网络编程环境安装相关推荐
- mac下配置android sdk环境 安装eclipse
一.Eclipse的下载 到网站:http://www.eclipse.org/downloads/ 上,由于我们是用Java开发的所以步骤如下: 1. 找到"Eclipse IDE fo ...
- 【UNIX网络编程第三版】阅读笔记(一):代码环境搭建
粗略的阅读过<TCP/IP详解>和<计算机网络(第五版)>后,开始啃这本<UNIX网络编程卷一:套接字联网API>,目前linux下的编程不算太了解,在阅读的过程中 ...
- UNIX网络编程之旅-配置unp.h头文件环境
最近在学习Unix网络编程(UNP),书中steven在处理网络编程时只用了一个#include "unp.h" 相当有个性并且也很便捷 于是我把第三版的源代码编译实现了这个过程 ...
- unix网络编程 的环境配置
<unix网络编程> 的环境配置 首先在网上下载UNP的库文件,然后就可以安装学了.我的系统环境: 2.6.32-131.0.15.el6.i686 #1 SMP Sat Nov 12 1 ...
- linux下网络编程设置非阻塞,UNIX网络编程 非阻塞connect的实现
一.<UNIX网络编程>-非阻塞connect 在一个TCP套接口被设置为非阻塞之后调用connect,connect会立即返回EINPROGRESS错误,表示连接操作正在进行中,但是仍未 ...
- win7 安装c语言环境变量,win7下如何配置编程环境变量的方法
win7下如何配置编程环境变量的方法 由于Win7和Win XP的不同,环境变量的配置也变得有所不同.具体操作: 一.桌面右击[计算机],选择[属性],在弹出的窗体左侧点击[高级系统设置],此时将弹出 ...
- R语言图形编辑器GUI开发环境RStudio安装(Windows操作系统下、RStudio开发环境安装)
R语言图形编辑器GUI开发环境RStudio安装(Windows操作系统下.RStudio开发环境安装) RStudio是R语言的集成开发环境(IDE),它是一个独立的开源项目,它将许多功能强大的编程 ...
- 16.unix网络编程一卷 unp.h
unix网络编程 --ubuntu下建立编译环境 1.安装编译器,安装build-essential sudo apt-get install build-essential 2.下载本书的头文件 下 ...
- Unix网络编程unp.h问题以及Linux中的库
Stevens的<UNIX网络编程 卷1:套接字连网API>是一本很著名的UNIX网络编程书籍.其中使用了一个unp.h的引用,如果没有设置相应的库的话,即使引入了头文件也是没用的.所以首 ...
- UNIX网络编程第一步之第一个程序daytimetcpcli.c走起
又迎来来一本大头书,此次是Stevens的UNIX网络编程,虽然书已经看到第5章了但书里面代码一句也没敲过,今天下午终于把环境配置好,并成功的运行了书上面的第一个程序daytimetcpcli.c.下 ...
最新文章
- 微型计算机三包法第30条内容,我不同意国家对电视机三包有明确规定,还是检测手段有问题。保修内容明确维护好消费者的权益。- 法律快车法律咨询...
- 读取SBT项目resources目录中的文件
- 删除win10自带的软件
- Zookeeper--Watcher机制源码剖析一
- 查看linux服务器的系统信息
- spring源码编译和导入eclipse
- Appium Java
- Go编程模式--流水线模式
- Java微服务:这个画饼是个谎言,但你却不能忽视它
- 调用天气接口获取天气预报
- C++ Primer Plus 6 第一章
- mysql数据库中的分组查询语句_详解MySQL中的分组查询与连接查询语句
- Yocto on Quark X1000
- 谈提高健身效果的营养品系列之一: 乳清蛋白, 肌酸, 支链氨基酸
- C++primer plus第六版课后编程题答案14.3(仅供参考)
- 计算机网络中如何看别人的共享文件夹,教大家如何使用网络共享文件夹和手机如何使用电脑端查看网络共享-共享文件夹...
- Sprite 3D用法和相关特性详解
- 从零开始实现3D软光栅渲染器 (1) 简介
- 南通java培训地点,吐血整理
- 网站强制跳转到国家反诈中心如何解封