UNIX环境高级编程(第三版)中的例子用到apue.h这个头文件,可是书里面写的地址已经不能访问。linux
通过一番查找以后,找到以下解决方案:编程
一、到www.apuebook.com上下载第2版的源码,也能够直接点这里。函数
二、下载后的源码,须要修改一下:ui
一、Make.defines.linux中第6行WKDIR=/home/sar/apue.2e更改成目录的绝对路径。ip
二、apue.2e/ipp/ipp.h中第122行中的status换为Status。(也可换为其余,但要与下面对应)get
三、apue.2e/ipp/printd.h中第977行中的status替换为Status。(与上面对应)源码
四、apue.2e/threadctl/getenv1.c和/root/apue.2e/threadctl/getenv3.c中第1行#include <limits.h>更换为#include <linux/limits.h>it
三、在apue.2e目录执行make命令进行编译。若是编译经过,会在apue.2e/lib/目录下生成libapue.a静态连接库文件。编译
四、apue.2e/lib/libapue.a拷贝至/usr/local/lib/目录下。thread
五、apue.2e/include/apue.h拷贝至/usr/local/include/目录下。
六、完成,但编译时要加上-lapue指令,例如编译test.c文件,执行:gcc test.c -lapue
补充说明:程序里面的err_quit,err_sys等等函数在apue.2e/lib/error.c中, error.c 实现apue.h中的出错处理函数。
固然,若是按照上面的步骤制做了libapue.a库的话,不须要单独包含error.c