學習《UNIX 環境高級程式設計》(APUE) 時,書中範例程式引用作者自訂的 apue.h 與 error.c,系統標頭目錄預設不含此檔案,導致編譯失敗。本文提供標準解決流程:下載原始碼套件、修改 apue.h 內含 error.c、複製至 /usr/include、驗證編譯。

apue.h 非系統標準頭檔,為書作者封裝常用標頭 (stdio.h, stdlib.h, unistd.h...) 與錯誤處理函式 (err_sys, err_quit 等) 的便利標頭。
apue.3e 下載 apue.h 與 error.c (或完整 src.tar.gz)。/usr/include 需 root)sudo -iapue.h,在 #endif /* _APUE_H */ **之前**加入:#include "error.c"cp apue.h /usr/include/apue.hcp error.c /usr/include/error.cgcc -o test test.c (測試書中範例)# 專案目錄結構
myproject/
├── include/
│ ├── apue.h
│ └── error.c
└── src/
└── test.c
# test.c 中
#include "../include/apue.h"
# 編譯
gcc -I../include -o test src/test.c
include_directories。fatal error: apue.h: No such file or directory:未安裝至 /usr/include 或 -I 路徑錯誤。undefined reference to 'err_sys':apue.h 未正確 #include "error.c" 或 error.c 未編入連結。long vs int 差異。安裝 apue.h 即可順利編譯 APUE 經典範例,深入掌握 UNIX 系統程式設計精髓。