運行程序清單1-1(列出一個目錄中的所有文件)
提示 "錯誤:apue.h:沒有那個文件或目錄".
很是受打擊,果斷google解決之。
apue.h是作者自定義的一個頭文件,包括程序所需的常用頭文件及出錯處理函數。所以因該將它放入系統頭文件中(Linux下是 /usr/include),這樣gcc編譯器就可以找到它了。
去http://www.linuxidc.com/Linux/2013-01/77467.htm下載src.tar.gz包,然後解壓至電腦中的某個目錄,比如我的是在/home/user/下
user@user-desktop:~$ sudo tar xzf src.tar.gz
進入解壓目錄apue.2e,修改 Make.defines.linux中的WKDIR=/home/xxx/apue.2e,為WKDIR=/home/user/apue.2e
進入std目錄,修改linux.mk,將裡面的nawk全部改為awk。
復制apue.h和error.c
將apue.h和error.c兩個文件copy到/usr/include目錄下。(apue.h位於 your_apue_path/inlcude ; error.c位於your_apue_path/lib )
以我的路徑為例:
user@user-desktop:/usr/include$ cp /home/user/apue.2e/inlcude/apue.h apue.h
user@user-desktop:/usr/include$ cp /home/user/apue.2e/lib/error.c error.c (實現apue.h中的出錯處理函數)
修改apue.h
在最後一行#endif 前面添加一行 #include "error.c"
貌似這樣就OK了。
UNIX環境高級編程中文第二版PDF高清版 http://www.linuxidc.net/thread-2063-1-1.html