1、把src.3e.tar.gz放置在/home/lmy0921主文件夹中新创建的lmy-sources文件夹中,通过命令:
tar -zxv -f src.3e.tar.gz -C /home/lmy0921/lmy-sources
成功快速地实现了解压缩,这与之前解压缩处理相差很多,相比之前命令没有写合适;
2、在apue.3e文件夹中的Make.defines.linux中,添加
WKDIR=/home/lmy0921/lmy-sources/apue.3e
和 CPPFLAGS=-I/home/lmy0921/lmy-sources/apue.3e/include
3、将/home/lmy0921/lmy-sources/apue.3e/include中的apue.h和/home/lmy0921/lmy-sources/apue.3e/lib中的error.c
复制(cp)在/usr/include文件夹中;
4、编辑apue.h: vim apue.h
在最后一行#endif /* _APUE_H */的前面加上一行:
#include "error.c"
5、编译源文件
在/home/lmy0921/lmy-sources/apue.3e中其一文件夹中,通过命令:
cp linux.mk Makefile
make
例如:
cd /home/lmy0921/lmy-sources/apue.3e/printer
make
便可实现编译。
(其中由于《UNIX环境高级编程》第三版源程序中没有linux.mk,已存在了Makefile)
当然也可以直接在/home/lmy0921/lmy-sources/apue.3e文件夹中进行make,例如:
cd /home/lmy0921/lmy-sources/apue.3e
make
实现编译,并且编译了一次后再次编译会出现:make[1]: 没有什么可以做的为 `all'
此处出现一个error:
making threads
make[1]: 正在进入目录 `/home/lmy0921/lmy-sources/apue.3e/threads'
gcc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE badexit2.c -o badexit2 -L../lib -lapue -pthread -lrt -lbsd
/usr/bin/ld: cannot find -lbsd
collect2: ld 返回 1
make[1]: *** [badexit2] 错误 1
make[1]:正在离开目录 `/home/lmy0921/lmy-sources/apue.3e/threads'
make: *** [all] 错误 1
本文介绍在Ubuntu系统中遇到的《UNIX环境高级编程》第三版源码编译问题及解决步骤,包括正确复制并解压源码包、配置编译环境变量、编译源码等关键操作。
1806

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



