转自【http://www.cnblogs.com/wangshuo/archive/2011/04/09/2010512.html】
《UNIX环境高级编程》编译源码出错:
如下:
gcc -DLINUX -ansi -I/home/rdc/文档/程序/unix环境高级编程/apue.2e/include -Wall -D_GNU_SOURCE -c -o getenv1.o getenv1.c
getenv1.c:4: error: ‘ARG_MAX’ undeclared here (not in a function)
make[2]: *** [getenv1.o] 错误 1
make[2]:正在离开目录 `/home/rdc/文档/程序/unix环境高级编程/apue.2e/threadctl'
make[1]: *** [linux] 错误 1
make[1]:正在离开目录 `/home/rdc/文档/程序/unix环境高级编程/apue.2e'
make: *** [all] 错误 2
解决方法:
在apue.2e/include/apue.h中添加一行:
#define ARG_MAX 4096
打开apue.2e/threadctl/getenv3.c(包括getenv1.c),添加一行:
#include "apue.h"
再次编译即可。