编译源代码
1、从官网下载源代码www.apuebook.com
2、解压
3、默认解压后的源代码名称为:apue.2e,里面包含了所有的代码
4、修改目录,我的系统是ubuntu10.10,修改apue.2e下的Make.defines.linux
WKDIR=/home/sdoning/apue/apue.2e(主要是该路径)
5、在apue.2e目录下运行make命令
6、错误与解决
gcc -DLINUX -ansi -I/home/sdoning/apue/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] Error 1
make[2]: Leaving directory `/home/sdoning/apue/apue.2e/threadctl’
make[1]: *** [linux] Error 1
make[1]: Leaving directory `/home/sdoning/apue/apue.2e’
make: *** [all] Error 2
解决方法:
在apue.2e/include/apue.h中添加一行:
#define ARG_MAX 4096
打开apue.2e/threadctl/getenv3.c(包括getenv1.c),添加一行:
#include "apue.h"
7、再次编译即可。
使用源代码:
1、知道源代码的软连接与位置
sdoning@ubuntu:~/apue/apue.2e$ ll fig1.3
lrwxrwxrwx 1 sdoning sdoning 10 2010-11-27 07:27 fig1.3 -> file/ls1.c
2、进入file目录
sdoning@ubuntu:~/apue/apue.2e/file$ ls
access devrdev.c ftw4.c longpath.c seek.c umask.c
access.c fileflags hello ls1 solaris.mk unlink
cdpwd fileflags.c hello.c ls1.c testerror unlink.c
cdpwd.c filetype hole macos.mk testerror.c zap
changemod filetype.c hole.c mycd uidgid zap.c
changemod.c freebsd.mk linux.mk mycd.c uidgid.c
devrdev ftw4 longpath seek umask
3、运行
sdoning@ubuntu:~/apue/apue.2e/file$ ./ls1 /home
..
sdoning
.
本文介绍了如何从官网下载并编译《Advanced Programming in the UNIX® Environment》(APUE)一书的源代码,包括了解压、配置环境、解决编译错误等步骤,并提供了具体的错误示例及解决方法。
1681

被折叠的 条评论
为什么被折叠?



