运行程序清单1-1(列出一个目录中的全部文件)html
提示 "错误:apue.h:没有那个文件或目录".linux
非常受打击,果断google解决之。编程
apue.h是做者自定义的一个头文件,包括程序所需的经常使用头文件及出错处理函数。因此因该将它放入系统头文件中(Linux下是 /usr/include),这样gcc编译器就能够找到它了。ide
去http://www.linuxidc.com/Linux/2013-01/77467.htm下载src.tar.gz包,而后解压至电脑中的某个目录,好比个人是在/home/user/下函数
user@user-desktop:~$ sudo tar xzf src.tar.gzgoogle
进入解压目录apue.2e,修改 Make.defines.linux中的WKDIR=/home/xxx/apue.2e,为WKDIR=/home/user/apue.2espa
进入std目录,修改linux.mk,将里面的nawk所有改成awk。.net
复制apue.h和error.corm
将apue.h和error.c两个文件copy到/usr/include目录下。(apue.h位于 your_apue_path/inlcude ; error.c位于your_apue_path/lib )htm
以个人路径为例:
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