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的用法的主要内容,如果未能解决你的问题,请参考以下文章

UNIX环境高级编程(第三版)头文件“apue.h“问题

Linux - Unix环境高级编程(第三版) 源代码编译(即头文件apue.h如何使用问题)

《unix环境高级编程·第三版》源代码编译及使用

apue.h头文件(UNIX环境高级编程)

Linux - Unix环境高级编程(第三版) 代码编译

CentOS 7如何安装 libbsd-dev && 编译apue.3e时出错处理(以便使用Unix环境高级编程中的apue.h库)