APUE源码安装与使用

来源:互联网 发布:自动对下联软件 编辑:程序博客网 时间:2024/06/08 03:03

环境:确保你已经安装了gcc和gawk。

 

步骤

 

1.到www.apuebook.com下载源码

 

2.tar解包,cd apue.2e

 

3.vi Make.defines.linux   修改变量WKDIR,指向你的apue源码的位置,我的是/home/readyou/code/apue.2e,所以

  WKDIR=/home/readyou/code/apue.2e

 

4.vi include/apue.h  增加一个常量ARG_MAX,这是threadctl/getenv1.c和threadctl/getenv3.c要用到的;4096这个值是参考里给的,如果有问题,自己修改吧。

  #define ARG_MAX 4096

 

5.vi threadctl/getenv1.c   增加

  #include "apue.h"

 

6.vi threadctl/getenv3.c   增加

  #include "apue.h"

 

7.vi threads/badexit2.c   修改第31行,将pthread_self()的返回值转换为int类型。

  printf("thread 2: ID is %d\n", (int)pthread_self());

 

8. 把ipp.h文件里的status改成其他名称,比如mstatus,再次编译,错误提示status神马的信息,找到status出错的位置,把它改为mstatus就行了。
此处我的status出错位置在printd.c的第977行中:i = ntohs(hp->status);


9.vi std/linux.mk   将两个nawk改为gawk

 

10.make

 

11.sudo cp include/apue.h /usr/include

   sudo cp lib/libapue.a /usr/lib

 

12. 好了,测试一下,记得要用-lapue命令让编译器链接apue库

gcc main.c -lapue