1、APUE2源代码下载:http://www.apuebook.com/src.tar.gz
2、
进入apue.2e文件夹下的Make.defines.linux,
修改WKDIR=/home/var/apue.2e为你的apue.2e目录,比如我的apue源码解压在/usr/local,那我就改为:
WKDIR=/ usr/local/apue .2e
3、
然后进入apue.2e/std 目录,编辑linux.mk,修改里面所有的nawk为awk
4、apue.2e文件夹下的Make.defines.linux这时还不可编译,还要修改
在apue.2e/include/apue.h中添加一行:
#define ARG_MAX 4096
打开 apue.2e/threadctl/getenv3.c,添加一行:
#include "apue.h"
#define ARG_MAX 4096
打开 apue.2e/threadctl/getenv3.c,添加一行:
#include "apue.h"
打开apue.2e/threadctl/getenv1.c,添加一行:
#include "apue.h"
#include "apue.h"
5、然后 就可以 make 了。
自己编译或者写程序如果用到apue.h与
libapue.a
有三种方法可选:
1、把 apue.2e/lib/libapue.a 移动到 /lib 或者 /usr/lib目录下,
把apue.2e/include/apue.h 移动到 /include 或者 /usr/include目录下
编译时只要 gcc -o name(hello) soucename(hello.c) -lapue
2、把
apue.2e/lib/libapue.a 与
apue.2e/include/apue.h 移动到你的源文件所在目录下
编译时只要 gcc -o name(hello) soucename(hello.c) -lapue
3、不做任何移动 ,加上库文件所在目录
编译时只要
gcc -o name(hello) soucename(hello.c) -lapue -L /home/var/apue.2e/lib -I /home/var/apue.2e/include
这种做法比较麻烦,不推荐。
推荐第一种做法,移动一次,以后都可以用了,记得编译的时候别忘记 -lapue。