1.
去该网站
http://www.apuebook.com/
下载源码
src.tar.bz
2.
解压到某目录,假定为
/home/user,
进入解压后的文件修改
Make.defines.linux
中的
WKDIR=/home/user/apue.2e
3.
返回?/p>
apue.2e/std
目录下面,修?/p>
linux.mk
,将里面?/p>
nawk
全部改为
awk
,可以使
用这个命?/p>
?/p>
1,$s/nawk/awk/g
4.make
后将会遇见两个问题?/p>
a)
gcc -DLINUX -ansi -I/tmp/apue.2e/include -Wall -D_GNU_SOURCE
-DDEBUG
-c -o printd.oprintd.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:
错误?/p>
expected
?/p>
:
?/p>
,
?/p>
,
?/p>
,
?/p>
;
?/p>
,
?/p>
}
?/p>
or
?/p>
__attribute__
?/p>
before
?/p>
.
?/p>
token
原因?/p>
?/p>
apue.2e/ipp.h
中定义了一个宏定义
status
?
/usr/include/i386-linux-gnu/bits/timex.h
中的成员
status
冲突
解决方法?/p>
修改这个
apue.2e/ipp/ipp.h
文件中的宏名称,例如改为
Status
然后?/p>
apue.2e/ipp/printd.c
?/p>
977
行的
hp->status
改为
hp->Status
b)
ARG_MAX
未定?/p>