UNIX环境高级编程 apue.h头文件的配置
2016-07-31 19:08
316 查看
初学《UNIX环境高级编程》的朋友都会遇到一个问题,运行里面的实例(download: http://www.apuebook.com/)时就出现问题,提示 "错误:apue.h:没有那个文件或目录".
apue.h是作者自定义的一个头文件,包括程序所需的常用头文件及出错处理函数。所以因该将它放入系统头文件中(Linux下是 /usr/include),这样gcc编译器就可以找到它了。
1、先在这个网站 http://www.apuebook.com/ 下载tar.gz格式的源码包,然后解压至某个目录,比如说/home/xhm/下,然后进入目录apue.2e,把文件 Make.defines.linux 中的 WKDIR=/home/sar/apue.2e 修改为 WKDIR=/home/xhm/apue.2e ,然后再进入apue.2e目录下的std目录,打开linux.mk,将里面的nawk全部替换为awk。
2、然后在此目录下运行make命令,即回到 /home/xhm/apue.2e 目录在终端中输入 “make” (不含引号)
出现错误1:没找到apue.h。
解决:把当前源码中的apue.h(在include/apue.h)拷贝到/usr/include(需要权限)
再编译,出现错误2:ARG_MAX 没找到
在apue.h中加入#define ARG_MAX 4096
再编译:出现没找到 。在下面文件加入#define
ARG_MAX 4096 就可以
(apue.2e/threadctl/getenv1.c 和apue.2e/threadctl/getenv3.c 一般这两个文件出现这点错误)
再编译,出现错误:
In file included from /usr/include/i386-linux-gnu/bits/time.h:86:0,
from /usr/include/time.h:42,
from /usr/include/pthread.h:26,
from printd.c:11:
/usr/include/i386-linux-gnu/bits/timex.h:31:7: 错误: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘.’ token
这是linux的time.h中定义林全局变量status,在apue2e/ipp的ipp.h中也定义了,改成Status,编译出错的时候将相应位置的status改成Status即可,再把apue2e/ipp/printd.c中的hp->status
改成hp->Status(900多行的位置)即可。
最后编译通过。
3、最后把apue.h/lib下的error.c放到/usr/include/中,用vi在apue.h的最后一行
#endif前 加一句#include"error.c "这就是书本中第一个实例定义的err_quit和err_sys输出方法。
apue.h是作者自定义的一个头文件,包括程序所需的常用头文件及出错处理函数。所以因该将它放入系统头文件中(Linux下是 /usr/include),这样gcc编译器就可以找到它了。
1、先在这个网站 http://www.apuebook.com/ 下载tar.gz格式的源码包,然后解压至某个目录,比如说/home/xhm/下,然后进入目录apue.2e,把文件 Make.defines.linux 中的 WKDIR=/home/sar/apue.2e 修改为 WKDIR=/home/xhm/apue.2e ,然后再进入apue.2e目录下的std目录,打开linux.mk,将里面的nawk全部替换为awk。
2、然后在此目录下运行make命令,即回到 /home/xhm/apue.2e 目录在终端中输入 “make” (不含引号)
出现错误1:没找到apue.h。
解决:把当前源码中的apue.h(在include/apue.h)拷贝到/usr/include(需要权限)
再编译,出现错误2:ARG_MAX 没找到
在apue.h中加入#define ARG_MAX 4096
再编译:出现没找到 。在下面文件加入#define
ARG_MAX 4096 就可以
(apue.2e/threadctl/getenv1.c 和apue.2e/threadctl/getenv3.c 一般这两个文件出现这点错误)
再编译,出现错误:
In file included from /usr/include/i386-linux-gnu/bits/time.h:86:0,
from /usr/include/time.h:42,
from /usr/include/pthread.h:26,
from printd.c:11:
/usr/include/i386-linux-gnu/bits/timex.h:31:7: 错误: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘.’ token
这是linux的time.h中定义林全局变量status,在apue2e/ipp的ipp.h中也定义了,改成Status,编译出错的时候将相应位置的status改成Status即可,再把apue2e/ipp/printd.c中的hp->status
改成hp->Status(900多行的位置)即可。
最后编译通过。
3、最后把apue.h/lib下的error.c放到/usr/include/中,用vi在apue.h的最后一行
#endif前 加一句#include"error.c "这就是书本中第一个实例定义的err_quit和err_sys输出方法。
相关文章推荐
- <<UNIX环境高级编程>>apue.h头文件的配置
- UNIX环境高级编程 apue.h头文件的配置
- [UNIX环境高级编程]apue.h头文件的配置
- UNIX环境高级编程 apue.h头文件的配置
- UNIX环境高级编程 apue.h编译文件配置
- Unix环境高级编程第三版中apue.h头文件如何配置
- [UNIX环境高级编程]apue.h头文件的配置
- UNIX环境高级编程 apue.h头文件的配置
- UNIX环境高级编程 apue.h头文件的配置
- apue.h <<UNIX 环境高级编程>> 第二版 环境配置
- UNIX 环境高级编程(一) apue.h 文件与apue.3e的安装
- UNIX环境高级编程源代码配置----如何不用作者自己写的apue.h头文件的方法
- apue.h头文件(unix环境高级编程)
- UNIX环境高级编程中头文件配置方法
- unix环境高级编程书中实例缺少apue.h头文件解决方法
- unix环境高级编程 apue.h文件
- UNIX环境高级编程中的apue.h头文件的问题
- Unix环境高级编程中头文件apue.h的问题
- Unix 环境高级编程第三版 配置 apue.h
- (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO