码迷,mamicode.com
首页 > 其他好文 > 详细

UNIX网络编程 卷2 源代码使用

时间:2015-05-26 23:13:35      阅读:381      评论:0      收藏:0      [点我收藏+]

标签:

1. 下载源码,W. Richard Stevens的主页:http://www.kohala.com/start/
wget http://www.kohala.com/start/unpv22e/unpv22e.tar.gz -P /usr/local/src 
2. 解压
tar xvf /usr/local/src/unpv22e.tar.gz -C /root/bin 
3. 编译库文件
cd /root/bin/unpv22e/  
./configure 
编辑生成config.h文件,注释以下几行
vi config.h  
56 // #define uint8_t unsigned char  
57 // #define uint16_t unsigned short  
58 // #define uint32_t unsigned int  
添加MSG_R和MSG_W定义
vi config.h  
66 // add by jcq  
67 typedef unsigned long ulong_t;  
68 #define MSG_R 0400  
69 #define MSG_W 0200 
添加_GNU_SOURCE定义
vi config.h  
#define _GNU_SOURCE 
修改warpunix.c中的MKtemp函数,使用mkstemp函数替换mktemp函数
cd lib  
181 void  
182 Mktemp(char *template)  
183 {  
184 if (mkstemp(template) == NULL || template[0] == 0)  
185 err_quit("mktemp error");  
186 } 
编译生成libunpipc.a
cd lib  
make
 
将生成的libunpipc.a复制到/usr/lib中。
[root@localhost myunp2]# vim ftok.c
[root@localhost myunp2]# gcc -o ftok ftok.c 
/tmp/ccxRydhw.o: In function `main:
ftok.c:(.text+0x18): undefined reference to `err_quitftok.c:(.text+0x30): undefined reference to `Statftok.c:(.text+0x48): undefined reference to `Ftokcollect2: 错误:ld 返回 1
[root@localhost myunp2]# gcc -o ftok ftok.c -lunpipc
/usr/lib/libunpipc.a(wrapunix.o): In function `Mq_open:
wrapunix.c:(.text+0x4d8): undefined reference to `mq_openwrapunix.c:(.text+0x4f0): undefined reference to `mq_open/usr/lib/libunpipc.a(wrapunix.o): In function `Mq_close:
wrapunix.c:(.text+0x52b): undefined reference to `mq_close/usr/lib/libunpipc.a(wrapunix.o): In function `Mq_unlink:
wrapunix.c:(.text+0x55b): undefined reference to `mq_unlink/usr/lib/libunpipc.a(wrapunix.o): In function `Mq_send:
wrapunix.c:(.text+0x5a3): undefined reference to `mq_send/usr/lib/libunpipc.a(wrapunix.o): In function `Mq_receive:
wrapunix.c:(.text+0x5e3): undefined reference to `mq_receive/usr/lib/libunpipc.a(wrapunix.o): In function `Mq_notify:
wrapunix.c:(.text+0x623): undefined reference to `mq_notify/usr/lib/libunpipc.a(wrapunix.o): In function `Mq_getattr:
wrapunix.c:(.text+0x653): undefined reference to `mq_getattr/usr/lib/libunpipc.a(wrapunix.o): In function `Mq_setattr:
wrapunix.c:(.text+0x68b): undefined reference to `mq_setattr/usr/lib/libunpipc.a(wrapunix.o): In function `Sem_open:
wrapunix.c:(.text+0x9c8): undefined reference to `sem_openwrapunix.c:(.text+0x9e0): undefined reference to `sem_open/usr/lib/libunpipc.a(wrapunix.o): In function `Sem_close:
wrapunix.c:(.text+0xa1b): undefined reference to `sem_close/usr/lib/libunpipc.a(wrapunix.o): In function `Sem_unlink:
wrapunix.c:(.text+0xa4b): undefined reference to `sem_unlink/usr/lib/libunpipc.a(wrapunix.o): In function `Sem_init:
wrapunix.c:(.text+0xa8b): undefined reference to `sem_init/usr/lib/libunpipc.a(wrapunix.o): In function `Sem_destroy:
wrapunix.c:(.text+0xabb): undefined reference to `sem_destroy/usr/lib/libunpipc.a(wrapunix.o): In function `Sem_wait:
wrapunix.c:(.text+0xaeb): undefined reference to `sem_wait/usr/lib/libunpipc.a(wrapunix.o): In function `Sem_trywait:
wrapunix.c:(.text+0xb1c): undefined reference to `sem_trywait/usr/lib/libunpipc.a(wrapunix.o): In function `Sem_post:
wrapunix.c:(.text+0xb5b): undefined reference to `sem_post/usr/lib/libunpipc.a(wrapunix.o): In function `Sem_getvalue:
wrapunix.c:(.text+0xb93): undefined reference to `sem_getvalue/usr/lib/libunpipc.a(wrapunix.o): In function `Shm_open:
wrapunix.c:(.text+0xccc): undefined reference to `shm_open/usr/lib/libunpipc.a(wrapunix.o): In function `Shm_unlink:
wrapunix.c:(.text+0xd0b): undefined reference to `shm_unlinkcollect2: 错误:ld 返回 1
[root@localhost myunp2]# gcc -lrt -o ftok ftok.c -lunpipc
[root@localhost myunp2]# man mq_open
Cannot open the message catalog "man" for locale "zh_CN.UTF-8"
(NLSPATH="/usr/share/locale/%l/LC_MESSAGES/%N")

Formatting page, please wait...

出现上面的错误,使用gcc 加选项-lrt解决。

UNIX网络编程 卷2 源代码使用

标签:

原文地址:http://www.cnblogs.com/wuchanming/p/4531979.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!