Unix網(wǎng)絡(luò)編程第一卷-第三版環(huán)境配置
首先我們先將本書中的所有樣例下載下來
百度云下載鏈接:
鏈接:https://pan.baidu.com/s/1IjBM3QS4bnW43DZClpD2MQ 提取碼:wjfg
文件名字為unpv13e.tar.gz
解壓: tar -xvf unpv13e.tar.gz

image.png
檢查系統(tǒng)是否有源碼編譯依賴的各種資源
1. cd unpv13e
2. ./configure
接下來是三次編譯庫
cd unpv13e/lib
make
執(zhí)行完make之后我們會在unpv13e目錄下得到一個libunp.a的靜態(tài)庫文件

image.png
cd unpv13e/libfree
make
在這個庫中會出現(xiàn)錯誤,如圖
image.png具體表示在inet_ntop.c文件下,第60行的size有問題
第二個error的錯誤是由第一個引起的,只需要修改第一個問題
具體修改措施是:將libfree下的inet_ntop.c文件的第60行由size_t size; 改為 socklen_t size;重新在libfree目錄下make 即可成功
此處出錯的原因可能是因為這本書適用于32位的機器,您的機器是64位,而size_t在64位機器上表示的是64位,在32位機器,size_t才能表示32位不會出錯,socklen_t無論是在那個機器都是表示32位,所以不會出錯。
image.png
cd unpv13e/libgai
make
將得到的靜態(tài)庫與一些頭文件添加到系統(tǒng)目錄中
我們首先修改一下unp.h ,此文件位于 unpv13e/lib目錄
修改:將#include “../config.h”修改為 #include “config.h”原因在于我們即將unp.h頭文件與config.h頭文件放在一個文件夾中。
拷貝頭文件與庫文件
#庫文件
sudo cp unpv13e/libunp.a /usr/local/lib
#頭文件
sudo cp unpv13e/config.h /usr/local/include
sudo cp unpv13e/lib/unp.h /usr/local/include
運行一個文件
運行unpv13e/intro/daytimetcpsrv.c文件
gcc daytimetcpsrv.c -o daytimetcpsrv -lunp
#-o 指定生成的目標文件的名字 -l 指定使用的庫 我們這里指定的是libunp.a 指定的時候可以去除lib .a 這些字符

