Chinaunix首页 | 论坛 | 博客
  • 博客访问: 217320
  • 博文数量: 40
  • 博客积分: 2512
  • 博客等级: 大尉
  • 技术积分: 492
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-24 10:23
文章存档

2014年(1)

2011年(4)

2010年(35)

分类: 系统运维

2010-10-16 21:13:00

最近看了下《UNIX网络编程》,就想把里面的源代码搞过来运行下。以前也搞过,不过老是忘记使用代码的步骤了,所以就记录下,防止每次还要弄半天。

从网上下载压缩包解压到自己设定的目录下面,我的是/home/**/myprogram/UNP/unpv13e/,里面有

./
├── aclocal.m4
├── advio
├── bcast
├── config.guess
├── config.h
├── config.h.in
├── config.log
├── config.status
├── config.sub
├── configure
├── configure.in
├── debug
├── DISCLAIMER
├── icmpd
├── inetd
├── install-sh
├── intro
├── ioctl
├── ipopts
├── key
├── lib
├── libfree
├── libgai
├── libroute
├── libunp.a(就是为了生成这个文件)
├── Make.defines
├── Make.defines.in
├── Makefile
├── Makefile.in
├── mcast
├── mysdr
├── names
├── nonblock
├── oob
├── ping
├── README
├── route
├── rtt
├── sctp
├── select
├── server
├── sigio
├── sock
├── sockopt
├── sparc64-unknown-freebsd5.1
├── ssntp
├── streams
├── tcpcliserv
├── test
├── threads
├── traceroute
├── udpcksum
├── udpcliserv
├── unixdomain
├── unpv13e
└── VERSION


这么多的东西,呵呵!!,当然我们不能忘记了README这个助手

QUICK AND DIRTY
===============

Execute the following from the src/ directory:

    ./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 daytimetcpcli
    ./daytimetcpcli 127.0.0.1

If all that works, you

其实需要执行的就是前三步,其实就是为了生成libunp.a。复制这个静态库到/usr/lib/和/usr/lib64/中,因为后来编译程序的话需要用到这个静态库。还得在环境变量中将这两个路径加上。

接下来的是头文件unp.h的问题,这个文件在这个解压缩目录的lib文件夹中。

因为里面所有的文件都包含了#include“unp.h”这一句话,为了方便可以有两种方法:
  

一:
1.将lib下面的unp.h复制到/usr/include文件夹下面,并保证环境变量中有/usr/include;
2.因为unp.h中有
#include "../config.h",所以得把解压缩目录下面的config.h复制到/usr/include中,并将unp.h中的#include "../config.h"改成 #include "config.h"。

3在unp.h中添加一行:
#define MAX_LINE 2048


二:

1.将Lib文件夹下面的unp.h移到unpv13e中,

2.参照上面的第二条;

3.参照上面的第三条;

4.以后在子文件夹里面编译程序,把#include"unp.h"改为#include"../unp.h"


做完上面,我们就可以编译单个程序了,比如intro/byteorder.c。

root@**-desktop:/home/**/myprogram/UNP/unpv13e/intro# gcc -W -o byteorder byteorder.c -lunp
root@**-desktop:/home/**/myprogram/UNP/unpv13e/intro# ./byteorder
i686-pc-linux-gnu: little-endian


呵呵,就这样!
阅读(994) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

rubylc_unix2011-01-10 16:36:02

yzj19870824: THANK YOU.....
THAT IS ALL RIGHT

yzj198708242011-01-09 15:31:15

THANK YOU

chinaunix网友2010-12-08 08:31:46

感谢