Unix网络编程和Unix环境编程书籍中所提及源码搭建

      由于这两套书太过经典,而书中提供的代码又太过陈旧导致其平台在搭建过程中遇到很多问题,笔者在搭建时也遇到许多弯路,所以将我的经历整理出来给有需求的小伙伴作为这套书源代码的搭建参考,笔者所用的是香橙派H6卡片机,系统是armbian 内核sunxin64,我想他能在嵌入式的卡片电脑上被移植成功编译那么,pc平台按照此方法也不是问题,其中并没有涉及过多的移植问题就是单纯的make

一、Unix网络编程配置

更新config.sub和config.guess,用于解决其要编译配置的./configues文件陈旧而无法识别最新内核支持的报错

  1. 下载最新文件:

wget -O config.guess 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'

wget -O config.sub 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'

  1. 删掉unpv13e文件下的陈旧文件

rm -rf config.guess config.sub

  1. 移动并粘贴新的文件

mv /root/code/config.guess /root/code/unpv13e/config.guess

mv /root/code/config.sub /root/code/unpv13e/config.sub

 

  1. 源代码的下载和编译

源代码下载地址:http://www.unpbook.com/ , 下载下来得到unpv13e.tar.gz文件

  1. 编译步骤:

解压缩zxvf unpv13e.tar.gz

tar zxvf unpv13e.tar.gz

进入unpv13e文件夹中

cd ./unpv13e

./configure     //如果权限不够可以chmod改权限

编译lib文件

cd lib

make          //出现大量warning,忽略之

cd ../libfree

make         //若出现错误,看后面横线内解决办法。无则跳过

 

  1. 错误如下:

inet_ntop.c: In function ‘inet_ntop’:

inet_ntop.c:60:9: error: argument ‘size’ doesn’t match prototype

size_t size;

  1. 此时在libfree目录下,修改

 

vim inet_ntop.c  //将第60行的 size_t size 改成 socklen_t size; 

重新make即修复错误。

 

  1. 继续执行下面命令:

 

cd ../libgai

make

二、环境搭建

修改unp.h , 将#include “../config.h”修改为 #include “config.h”,如下:

 

cd .. //回到主目录

sudo vim lib/unp.h

继续,拷贝头文件到include

 

sudo cp config.h /usr/local/include

sudo cp lib/unp.h /usr/local/include

拷贝库文件

 

sudo cp libunp.a /usr/local/lib

到此,unix网络编程一书上的代码都可以编译了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值