UNP环境配置
最近在学习《UNIX网络编程》,书上将常用的头文件都放在unp.h里,需要自己编译一下代码搭建环境。
UNP环境配置过程
- 下载源码 http://www.unpbook.com/src.html
- 按照README的说明进行编译
$ ./configure
$ cd lib
$ make
$ cd ../libfree
$ make
此时,会在unpv13e文件夹下产生一个libunp.a的库文件
3. 测试编译是否成功
$ cd ../intro # build and test a basic client program
$ make daytimetcpcli
$ ./daytimetcpcli 127.0.0.1
成功之后会显示如下:
$ ./daytimetcpcli 127.0.0.1
02 MAY 2015 12:05:03 CST
- 将libunp.a放置到/usr/lib/与/usr/lib64/文件夹下,并修改环境变量。将config.h与unp.h放置到源码文件夹,修改unp.h中的../config.h为config.h.
- 开始练习
$ gcc daytimetcpcli.c -lunp
ps:碰到的问题
1. libfree编译错误
出现如下报错:
inet_ntop.c:61: error: argument 'size' doesn't match prototype
/usr/include/arpa/inet.h:153: error: prototype declaration
处理:
修改libfree文件夹下的inet_ntop.c第61行 size_t size ->改成 socklen_t size
2. daytimetcpcli出现connected refused错误
出现如下报错:
[root@localhost intro]# ./daytimetcpcli 127.0.0.1
connect error: Connection refused
处理:
- 安装xinetd
- 修改 /etc/xinetd.d/daytime文件中的
disable yes
为disable no
- 重启xinetd
$ /etc/xinetd.d/ restart
- 查看是否开启daytime
$ netstat -ant
开启daytime服务后,会有13这个端口
tcp 0 0 0.0.0.0:13 0.0.0.0:* LISTEN
3. redefinition of \‘struct in_pktinfo\’错误
出现如下报错:
gcc -g -O2 -D_REENTRANT -Wall -c -o connect_nonb.o connect_nonb.c
In file included from connect_nonb.c:1:
unp.h:114: error: redefinition of ‘struct in_pktinfo’
make: *** [connect_nonb.o] 错误 1
处理:
结构in_pktinfo已经包含在标准头文件bits/in.h中了, 它又通过 netinet/in.h 在unp.h中被包括进来. 只要将 unp.h 中的结构定义comment out注释掉,然后重新编译libunp.a
UNP环境配置的更多相关文章
- apue 2ed 和 unp 3ed 环境配置
网上虽然有很多配置攻略,但是依然会一头雾水,下面记录我的配置过程. OS. Ubuntu 10.04 LTS 5 首先下载APUE源代码(http://www.apuebook.com/src.tar ...
- uboot环境配置
uboot环境配置 通过配置uboot让它在启动过程中从tftp获取内核和设备树,并从在加载内核之后把通过启动参数将"从nfs挂载根文件系统"传入内核.这个配置主要是通过uboot ...
- 史上最全Windows版本搭建安装React Native环境配置
史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有很多坑要跳,为了帮助新手快速无误的 ...
- Electron的环境配置
原文地址http://huisky.com/blog/161218121551123 本文介绍了Electron的环境配置,包括Electron下载.nodejs下载安装.NPM+Bower安装配置. ...
- Python开发环境配置
好久没有写博客了,自从6月份毕业后,进入一家做书法.字画文化宣传的互联网公司(www.manyiaby.com),这段时间一直在进行前端开发,对于后端的使用很少了,整天都是什么html.css.jav ...
- PHP_环境配置_python脚本_2017
Apache配置 需要安装:VC2015 httpd-2.4.16-win32-VC14.zip VC14就是2015的环境. 又比如:php-5.6.12-Win32-VC11-x86 VC11就是 ...
- PHP环境配置
PHP环境配置 1.Apache的安装 第一步: 1. 双击httpd-2.2.17-win32-x86-no_ssl.msi.出现 Windows 标准的软件安装欢迎界面,直接点“Next”继 ...
- Visual studio 通用开发环境配置:SDL,FFMPEG为例
引言 每一个C++库的使用都是从开发环境的配置开始的,其实每个库的配置过程都是大同小异,总结下来有下面几个步骤: 下载库文件,这里假定是已经预先编译完成的. 配置库文件的包含目录(include)和库 ...
- windows 7下React Native环境配置
React Native 是 Facebook 推出的一个用 Java 语言就能同时编写 ios,android,以及后台的一项技术,它可以做到实时热更新 .FaceBook 也号称这们技术是 “Le ...
随机推荐
- 大型App要搞的几个系统
路由模块: 解耦各个业务,统一收敛页面跳转,动态决策跳转实现: 鉴权模块:收敛鉴权项目(比如登录.输入密码.短信验证.扫脸),后台动态控制鉴权项目: 收银台:收敛支付,统一到收银台: 开关 ...
- 【河北省队互测】 gcd BZOJ 2818
Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的 数对(x,y)有多少对. Input 一个整数N Output 如题 Sample Input 4 Sa ...
- struts2使用配置文件中使用json-default的问题
使用Struts2实现异步验证数据: 与Struts2相关的jar包如下: freemarker-2.3.13.jar ognl-2.6.11.jar struts2-core-2.1.6.jar s ...
- JQ倒计时天时分秒
<div id="times_wrap" class="time_num"> 距离现在时间: <div class="time_w& ...
- lanmp之一 (动静分离)
一.lanmp--需求篇 1. 准备两台centos 6,其中一台机器跑mysql,另外一台机器跑apache,nginx + php 2. 同时安装apache和nginx,其中nginx启动80端 ...
- ember.js路由无效的解决思路
进入今天的问题,就是route ember中就一个html,单页面程序(spa),所以页面的跳转,也可以叫做页面的路由,其实就是在这一个html中,不断的进行html的插入和删除了(个人理解) emb ...
- LeetCode 162 Find Peak Element
Problem: A peak element is an element that is greater than its neighbors. Given an input array where ...
- 将input file的选择的文件清空的两种解决方案
<input type="file" id="fileupload" name="file" /> 上传文件时,选择了文件后想清 ...
- javase-排序
public class sort { public static void main(String[] args) { String[] arr = {"aa","bb ...
- 攻城狮在路上(陆)-- 提交运行MapReduce程序到hadoop集群运行
此种方式不能直接在eclipse中调试代码. 首先需要在src下放置服务器上的hadoop配置文件:core-site.xml\yarn-site.xml\hdfs-site.xml\mapred-s ...