centos6.4下编译apue.h(第二版)

apue.h 是作者自定义的一个头文件,并不是Unix/Linux系统自带的,此头文件包括了Unix程序所需的常用头文件及作者Richard自己写的出错处理函数。

所以在默认情况下,gcc在编译时是读不到这个头文件的。

(1)  在http://www.apuebook.com/下载src.2e.tar.gz源代码的压缩包。

(2)  解压至某个目录,比如说/home/godsoul/下。

(3)  进入目录apue.2e,把文件 Make.defines.linux 中的 WKDIR=/home/xxx/apue.2e 修改为 WKDIR=/home/godsoul/apue.2e 。

(4) 进入apue.2e目录下的std目录,打开linux.mk,将里面的nawk全部替换为awk,如果是用的vi/vim编辑器,可以使用这个 命令::%s/nawk/awk/g

(5)  在apue.2e目录下运行make命令,即回到 /home/godsoul/apue.2e 目录在终端中输入 “./make” (不含引号)
       这时一般会遇到stropts.h找不到的情况,则到http://ftp.gnu.org/gnu/glibc/下载glibc-2.11,解压缩
          cp ./glibc-2.11/streams/stropts.h /usr/include
          cp ./glibc-2.11/bits/stropts.h /usr/include/bits
          cp ./glibc-2.11/sysdeps/x86_64/bits/xtitypes.h /usr/include/bits
       再次编译,可能又出现ARG_MAX未定义,可以这么修改:
          在apue.2e/include/apue.h中添加一行:#define ARG_MAX 4096
          打开apue.2e/threadctl/getenv1.c 和apue.2e/threadctl/getenv3.c,添加一行:#include “apue.h”
          改好后make clean再重新make

(6)  然后把 /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权限。之所以要这样做,是因为gcc在链接头文件时会到

       /usr/include 这个目录下寻找   需要的头文件,若找不到则报错。

(7)  最终还要编辑一下复制过来的 apue.h 文件在最后一行 #endif 前面添加一行 #include “error.c”

(8)  验证,找到清单1-2(随便一个都行),编译, 成功通过,完成!


整理自http://www.cnblogs.com/feiling/archive/2012/02/15/2353286.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值