最近在學習Unix網絡編程(UNP),書中steven在處理網絡編程時只用了一個#include 「unp.h」 至關有個性而且也很便捷編程
因而我把第三版的源代碼編譯實現了這個過程,算是一種個性化的開發環境的搭建吧,順便把過程記錄下來,以便本身之後查閱。網絡
首先去網上找到源代碼包unpv.13e.tar.gz 一找一大堆架構
解壓縮到你的某個目錄,unpv13e裏面大體有這些目錄dom
├── 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
└── VERSIONtcp
首先查看README 通常狀況下咱們只須要進行第一步和第二步 其餘的是一些與其餘架構有關的狀況無論函數
執行下面兩部生成libunp.a學習
1. ./configurespa
2. cd lib debug
make (在lib上層目錄中生成libunp.a)unix
生成libunp.a。複製這個靜態庫到/usr/lib/和/usr/lib64/中,由於後來編譯程序的話須要用到這個靜態庫。還得在環境變量中將這兩個路徑加上。
接下來找到unp.h和config.h
1.我在個人主目錄下新建了一個unp目錄,專門處理unp的例子。而後把lib下的unp.h和上層目錄的config.h放入unp目錄,而後在unp目錄下新建各個要實踐的程序的章節目錄 好比一開頭的time server例子我就新建了個time server目錄,在裏面寫書中的例子程序
:)
3.unp.h中將#include "../config.h"改爲#include "config.h"
2.在unp.h中須要添加一行:
#define MAX_LINE 2048
頭文件爲
#include "../unp.h"便可
若是書寫的程序出現err_sys()等err函數找不到的狀況 這是由於steven大神對錯誤處理進行了封裝 能夠搜索apueerror.h這個文件(有興趣的同窗能夠研究下封裝代碼 篇幅小不難的) 而後放入unp目錄 接着在程序中 #include "apueerror.h"便可
至此環境搭建結束,你們能夠開始UNP編程之旅了,祝你們早日學成!~~~ 哈哈