UNIX環境高級編程(第三版)中的例子用到apue.h這個頭文件,但是書里面寫的地址已經不能訪問。
經過一番查找之后,找到如下解決方案:
1、到www.apuebook.com上下載第2版的源碼,也可以直接點這里。
2、下載后的源碼,需要修改一下:
1、Make.defines.linux中第6行WKDIR=/home/sar/apue.2e更改為目錄的絕對路徑。
2、apue.2e/ipp/ipp.h中第122行中的status換為Status。(也可換為其他,但要與下面對應)
3、apue.2e/ipp/printd.h中第977行中的status替換為Status。(與上面對應)
4、apue.2e/threadctl/getenv1.c和/root/apue.2e/threadctl/getenv3.c中第1行#include <limits.h>更換為#include <linux/limits.h>
3、在apue.2e目錄執行make命令進行編譯。如果編譯通過,會在apue.2e/lib/目錄下生成libapue.a靜態鏈接庫文件。
4、apue.2e/lib/libapue.a拷貝至/usr/local/lib/目錄下。
5、apue.2e/include/apue.h拷貝至/usr/local/include/目錄下。
6、完成,但編譯時要加上-lapue指令,例如編譯test.c文件,執行:gcc test.c -lapue
補充說明:程序里面的err_quit,err_sys等等函數在apue.2e/lib/error.c中, error.c 實現apue.h中的出錯處理函數。
當然,如果按照上面的步驟制作了libapue.a庫的話,不需要單獨包含error.c