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
很好,没有任何警告,设置成功。