unix网络编程源码编译问题
今天在温习计算机网络时,突然将我很久前买的《unix网络编程第三版卷一》拿出来看看了。放了两年了,哈哈。主要讲的套接字,之前编写android时用过socket(java),而本书全是c语言还是可以好好学习下的;然而第一个程序我就编译错误了,什么鬼!! ,还好之后,用了神奇的谷歌,发现源码下居然有readme。真是提醒我了,以后一定要注意这个文件。
源码下载地址官方地址
我直接编译遇见的问题:
#1.解压文件进入主目录
cd intro
#2.直接编译
gcc -o 1.out daytimetcpcli.c
#错误提示如下:
daytimetcpcli.c:1:17: fatal error: unp.h: No such file or directory
#include "unp.h"
^
compilation terminated.
#在../key目录下找到unp.h。继续提醒没有<sys/fiflo.h>从网上下载继续出问题。
#3.看到目录下有make文件,make一下:显示如下:
peace@peace:~/workspace/unpv13e/unpv13e/intro$ make
Makefile:1: ../Make.defines: No such file or directory
make: *** No rule to make target '../Make.defines'. Stop.
崩溃,简答的测试程序都不行。没办法,谷歌;终于找到了
解决办法:
参照主目录下readme文件执行一下命令:
注意:
1最后一个命令有改动
2前面三个命令是必须的 ./configure,cd lib ,make
3后面的cd ../libfree cd ../libroute cd ../libxti 满足条件才需要执行
./configure # try to figure out all implementation differences
cd lib # build the basic library that all programs need
make # use "gmake" everywhere on BSD/OS systems
cd ../libfree # continue building the basic library
make
cd ../libroute # only if your system supports 4.4BSD style routing sockets
make # only if your system supports 4.4BSD style routing sockets
cd ../libxti # only if your system supports XTI
make # only if your system supports XTI
cd ../intro # build and test a basic client program
make #官方是make daytimetcpcli
终于编译成功了。内牛满面;
测试:
sudo ./daytimetcpcli 127.0.0.1
[sudo] password for peace:
connect error: Connection refused
哭晕啊
成功执行
到网上一查才发现是系统默认没打开daytime服务。
解决办法:
在intro中执行一下命令打开daytime服务
sudo ./daytimetcpsrv
由于此程序在运行中;需要另外打开终端,进入intro中测试
sudo ./daytimetcpcli 127.0.0.1
[sudo] password for peace:
Thu Jul 23 21:50:23 2015
得到正常结果;
我的失误,希望能对大家有帮助;
unix网络编程源码编译问题的更多相关文章
- linux/unix网络编程之 select
转自http://www.cnblogs.com/zhuwbox/p/4221934.html linux 下的 select 知识点 unp 的第六章已经描述的很清楚,我们这里简单的说下 selec ...
- unix网络编程之listen()详解
转自于:http://blog.csdn.net/ordeder/article/details/21551567 Unix网络编程描述如下: #include <sys/socket.h> ...
- 单片机C语言基础编程源码六则
1.某单片机系统的P2口接一数模转换器DAC0832输出模拟量,现在要求从DAC0832输出连续的三角波,实现的方法是从P2口连续输出按照三角波变化的数值,从0开始逐渐增大,到某一最大值后逐渐减小,直 ...
- linux/unix网络编程之epoll
转载自 Linux epoll模型 ,这篇文章讲的非常详细! 定义: epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显 ...
- linux/unix网络编程之 poll
转自http://www.cnblogs.com/zhuwbox/p/4222382.html poll 与 select 很类似,都是对描述符进行遍历,查看是否有描述符就绪.如果有就返回就绪文件描述 ...
- 【itclx面向对象二】窥探itcl面向编程源码
从上一篇博客看出,itcl的语法其实不难,但是有个缺点,编程习惯与当前类似C++常见的面向编程还是有些区别,并且在大型项目实施中这种方式很费劲. 于是有了itclx. 例如: 1.成员变量.成员方法调 ...
- 单片机C语言基础编程源码六则2
1.某单片机系统的P2口接一数模转换器DAC0832输出模拟量,现在要求从DAC0832输出连续的三角波,实现的方法是从P2口连续输出按照三角波变化的数值,从0开始逐渐增大,到某一最大值后逐渐减小,直 ...
- Unix网络编程之环境搭建
环境搭建 在尝试UNP书上的样例时,会由于找不到"unp.h"等问题无法编译成功.因此在学习之前须要先搭建好编译环境. 步骤 <1>下载 UNIX网络编程源码unpv ...
- Unix网络编程第三版源码编译
配置: $ cd Unix-Network-Programming/ $ chmod 755 configure $ ./configure 主要的工作是检查系统是否有源码编译所依赖的各种资源(系统版 ...
随机推荐
- leetcode883
int projectionArea(vector<vector<int>>& grid) { ; ; ; ; i < grid.size(); i++) { r ...
- 监控Mongo慢查询
监控Mongo慢查询 1. 使用mongostat监控MongoDB全局情况 mongostat是mongdb自带的状态检测工具,在命令行下使用.它会间隔固定时间获取MongoDB的当前运行状态,并输 ...
- 嵌入式Linux启动配置文件及脚本分…
使用Busybox制作根文件系统时,/etc目录非常重要,它包含了嵌入式Linux启动所需的配置文件及脚本.由于init进程,或者说linuxrc程序会解析inittab文件,因此就从/etc/ini ...
- OSCache-JSP页面缓存(1)
一.OSCache提供的缓存标签 这是OSCache提供的标签库中最重要的一个标签,包括在标签中的内容将应用缓存机制进行处理,处理的方式将取决于编程者对cache标签属性的设置. 第一次请求到达时,标 ...
- OSCache-缓存过滤器CacheFilter
用CashFilter实现页面级缓存. 在OSCache组件中提供了一个CacheFilter用于实现页面级的缓存,主要用于对web应用中的某些动态页面进行缓存,尤其是那些需要生成pdf格式文件/报表 ...
- saltstack系列(四)——zmq Paraller Pipeline模式
push/pull模式 push/pull模式,这是一个什么模式呢?战争时期,食物紧缺,实行配给制,大家都排好队,有人专门发放食物,前一个人领取了食物,后一个人跟上继续领取食物,这个push端就是发放 ...
- 使用Python定时执行一任务,自动登录某web系统,生成报表,然后发送邮件给指定人员
一.项目需求 每周从A系统生成一张Excel报表,发送此报表给指定人员,相关人员依据此报表去完成后续的工作. 项目限制: 1.无法通过EDI系统交互的方式从后台读取数据 2.由于公司网络环境限制,不能 ...
- rpmbuild SPEC语法
rpmbuild SPEC语法 摘自:http://bbs.chinaunix.net/thread-4179207-1-1.html spec文件写作规范 2008-09-28 11:52:17 分 ...
- 实现一个简单的Plugin
1.准备 1)安装pluginlib_tutorials包: 2)创建一个包 2.创建基类 创建一个基类,所有的插件都将从基类继承,如RegularPolygon基类 创建一个基类头文件 其内容如下 ...
- App测试从入门到精通之更新测试
我们都知道,app在使用一段时间,都会有更新,而且更新会不止一次.在实际测试中,关于更新的测试场景也是我们需要重点关注的,接下来我们就看一下关于App的更新测试有哪些测试点我们需要注意: APP更新测 ...