APUE中的代碼不是download下來就能夠直接編譯執行的。因爲頭文件的問題,須要作相關的設置,修改一下相關的文件。linux
首先從http://www.apuebook.com/src.tar.gz下載源碼壓縮包,解壓到相應目錄,例如:測試
mkdir /home/Rockics/srcget
cd /home/Rockics/src/源碼
wget http://www.apuebook.com/src.tar.gz編譯
tar zxvf src.tar.gzawk
解壓之後獲得文件夾apue.2e。按照如下步驟完成設置,則能夠編譯相關代碼:gcc
1.進入相應目錄:cd apue.2e;file
2.修改文件Make.defines.linux:將其中的WKDIR 修改成/home/Rockics/src/apue.2e,保存退出;下載
3.修改文件std/linux.mk:將其中的nawk所有修改成wak,可在vi下使用命令:%s/nawk/awk/g完成;gc
4.修改文件include/apue.h:在文件倒數第二行(也就是#endif以前)加入:#include "error.c"; 這一行;
5.切換到root帳戶,將include/apue.h還有lib/error.c拷貝一份到/usr/include/下
設置完畢:)
測試:
我運行APUE的第一個程序實驗一下環境是否OK:
APUE的第一個程序是myls.c,文件位於file/ls1.c,試試看其是否編譯經過哈:
[Rockics@localhost apue.2e]$ gcc -o myls -Wall file/ls1.c
很好,沒有任何警告,設置成功。