Unix網(wǎng)絡(luò)編程第一卷-3環(huán)境配置

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 這些字符
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容