1.进入网站http://www.apuebook.com/,找到相应版本的Source Code.linux
2.复制到虚拟机下,解压。函数
3.将Make.defines.linux文件中的WKDIR换成本身的相应源码解压的目录。WKDIR=/home/xxx/apue.2e ---> WKDIR=/home/user/apue.2e 网站
进入std目录,将linux.mk中的全部nawk该为awkget
4.执行make命令。出现错误:源码
getenv1.c:4: error: ‘ARG_MAX’ undeclared here (not in a function)虚拟机
5.搜索该错误。io
在apue.2e/include/apue.h中添加一行:
#define ARG_MAX 4096function
打开apue.2e/threadctl/getenv3.c(包括getenv1.c),添加一行:
#include "apue.h"thread
6.不报错了。awk
7.而后把 /home/yarkee/apue.2e/inlcude 目录下的 apue.h 文件和位于 /home/yarkee/apue.2e/lib 目录下的 error.c 文件都复制到 /usr/include 目录下。 /home/yarkee/apue.2e/lib/libapue.a 复制到 /usr/lib
之因此要这样作,是由于gcc在连接头文件时会到 /usr/include 这个目录下寻找须要的头文件,若找不到则报错。
8.在apue.h的#endif前增长#include "error.c",用以支持错误函数。