《UNIX环境高级编程》起步学习以及实例编译方法

本文介绍在Ubuntu系统中遇到的《UNIX环境高级编程》第三版源码编译问题及解决步骤,包括正确复制并解压源码包、配置编译环境变量、编译源码等关键操作。
突然发现自己用的是第三版的书,系统也是第三版的系统,怀疑可能是个问题。于是重新下载,但是新的src.3e.tar.gz复制不进Ubuntu系统,自己以为是VmwareTools出现故障,就重新安装了一次(其实没有必要重新安装,这里草率了),新安装的VmwareTools下也还是不能将其复制进去。出于偶然,发现一个dev文件可以直接复制已经解压后的src.3e在Win7下复制也出现问题,由此怀疑是在Win7下的解压gz文件出现问题,果然,之前是把解压后的src.3e复制,现在将src.3e.tar.gz直接复制,发现很成功就复制好了。

​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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值