您的位置:首页 > 编程语言

unix环境高级编程 笔记1

2013-05-01 21:55 260 查看
这个学期选修了unix环境高级编程课,而且本周已经是开学第10周,所以开始复习一下。

第一章的第一个例子,在验证过程中遇到的问题。

参考连接:http://www.cnblogs.com/feiling/archive/2012/02/15/2353286.html

问题: error: apue.h: no such file or directory

apue.h是《UNIX环境高级编程》作者自定义的一个文件,并不是Unix/Linux系统自带的,此头文件包括了Unix程序所需的常用头文件及作者自己写的出错处理函数。所以在默认情况下,gcc在编译时是读不到这个头文件的。

首先,在网站http://www.apuebook.com上,下载对应的源码包,将其解压至某个目录,比如/home/huayp/下,然后进入目录apue.2e,把文件Make.defines.linux 中:

WKDIR=/home/xxx/apue.2e 修改为 WKDIR=/home/huayp/apue.2e,

然后再进入apue.2e目录下的std目录,打开linux.mk,将里面的nawk全部替换为awk;

然后在此目录下运行make命令,即回到 /home/huayp/apue.2e 目录在终端中输入 “./make”(不含引号,我在实现过程中使用的make,不需要输入./);

最后,把 /home/godsoul/apue.2e/inlcude 目录下的 apue.h 文件和位于 /home/godsoul/apue.2e/lib 目录下的 error.c 文件都复制到 /usr/include 目录下;将apue.2e/lib/libapue.a 复制到/usr/lib/和 /usr/lib64下。注意复制这写文件时,需要有root权限。在ubuntu下,可以使用sudo命令实现使用root权限进行复制文件,例如

sudo cp lib/apue.h /usr/include

之所以要这样做,是因为gcc在链接头文件时会到 /usr/include这个目录下寻找需要的头文件,若找不到则报错。

最终还要编辑一下复制过来的 apue.h
文件

在最后一行#endif 前面添加一行 #include“error.c”

这样就不会报错了。

运行结果图:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: