UNIX环境高级编程(第三版)关于apue.h的用法
Posted 立体风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UNIX环境高级编程(第三版)关于apue.h的用法相关的知识,希望对你有一定的参考价值。
UNIX环境高级编程(第三版)中的例子用到apue.h这个头文件,但是书里面写的地址已经不能访问。
经过一番查找之后,找到如下解决方案:
1、到www.apuebook.com上下载第2版的源码,也可以直接点这里。
2、下载后的源码,需要修改一下:
1、Make.defines.linux中第6行WKDIR=/home/sar/apue.2e更改为目录的绝对路径。
2、apue.2e/ipp/ipp.h中第122行中的status换为Status。(也可换为其他,但要与下面对应)
3、apue.2e/ipp/printd.h中第977行中的status替换为Status。(与上面对应)
4、apue.2e/threadctl/getenv1.c和/root/apue.2e/threadctl/getenv3.c中第1行#include <limits.h>更换为#include <linux/limits.h>
3、在apue.2e目录执行make命令进行编译。如果编译通过,会在apue.2e/lib/目录下生成libapue.a静态链接库文件。
4、apue.2e/lib/libapue.a拷贝至/usr/local/lib/目录下。
5、apue.2e/include/apue.h拷贝至/usr/local/include/目录下。
6、完成,但编译时要加上-lapue指令,例如编译test.c文件,执行:gcc test.c -lapue
补充说明:程序里面的err_quit,err_sys等等函数在apue.2e/lib/error.c中, error.c 实现apue.h中的出错处理函数。
当然,如果按照上面的步骤制作了libapue.a库的话,不需要单独包含error.c
以上是关于UNIX环境高级编程(第三版)关于apue.h的用法的主要内容,如果未能解决你的问题,请参考以下文章
Linux - Unix环境高级编程(第三版) 源代码编译(即头文件apue.h如何使用问题)
CentOS 7如何安装 libbsd-dev && 编译apue.3e时出错处理(以便使用Unix环境高级编程中的apue.h库)