unix网络编程-编译

下面开始用简单但典型的客户端和服务器端程序说明如何进行网络编程。这一小节讲的是客户端,一个用来连接并读取服务器发送来的时间的客户端。



1,安装编译器,为了齐全还是安装一下build-essential

[python]  view plain copy
  1. sudo apt-get install build-essential  

2,下载本书的头文件及示例源码

点此下载unpv13e.tar.gz  http://ishare.iask.sina.com.cn/f/13238521.html



3,解压unpv13e.tar.gz后进入目录查看README,然后可以按照里面提示操作,不过会遇到问题

第一步:在终端中进入upnv13e目录,然后执行代码:

[python]  view plain copy
  1. chmod u+x configure
  2. ./configure  


第二步:进入lib目录下执行make:

[python]  view plain copy
  1. cd lib  
  2. make


第三步:建立基础类库:

[python]  view plain copy
  1. cd ../libfree  # continue building the basic library  
  2. make  


第四步:编译函数库:

[python]  view plain copy
  1. cd ../libgai   # the getaddrinfo() and getnameinfo() functions  
  2. make  


4,将生成的libunp.a静态库复制到/usr/lib/和/usr/lib64/中。

[html]  view plain copy
  1. cd ..   //回到unpv12e目录  
[html]  view plain copy
  1. sudo cp libunp.a /usr/lib  
  2. sudo cp libunp.a /usr/lib64  


5,修改unp.h并将其和config.h拷贝到/usr/include中,为了以后include方便
[python]  view plain copy
  1. gedit lib/unp.h   //将unp.h中#include "../config.h"修改为#include "config.h"  
[python]  view plain copy
  1. sudo cp lib/unp.h /usr/include  
  2. sudo cp config.h /usr/include  

6,编译源代码
[python]  view plain copy
  1. cd ./intro  
  2. gcc daytimetcpcli.c -o daytimetcpcli -lunp  
然后发现报错:

daytimetcpcli.c:1:17: 致命错误: /usr/include/unp.h:权限不够

解决方法:
1.把 /usr/include/unp.h文件删掉:

sudo rm /usr/include/unp.h

2.进入unpv13e解压目录下的lib文件里面找到unp.h,然后右键查看属性,选中权限,修改它的权限为读写,或只读
3.重新将unp.h文件拷贝一次:

sudo cp lib/unp./usr/include  

ok,按照第6步的命令 重新编译,pass,成功了

跟普通的编译不一样的是要在最后加上刚才那个链接库,-l参数加上刚才那个libunp.a去掉lib和后面的.a。最后得到参数-lunp。



7,编写程序

以后编写完的程序安装6中的代码编译就行了,然后代码可以完全跟书上的一样。代码编辑器或IDE等就按自己的喜好来选了。这个网上很多c语言编程环境搭建教程。

我选择命令行用vim编写程序,主要为了锻炼一下自己。我的vim配置如下:http://lingshaohuprose.blog.163.com/blog/static/1695797822012271954678/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值