在Linux下编译APUE的例子

所有例子在linux-2.6.29.3gcc-4.3.3)下编译通过,需要做的修改如下:

l          打开apue.2e文件夹下的Make.defines.linux文件(根据你的系统选择对应文件),修改WKDIR=/home/var/apue.2e为你的apue.2e目录,如WKDIR=/home/pydeng/apue.2e

l          然后进入apue.2e/std 目录,编辑linux.mk,修改里面所有的nawkawk

l          修改脚本文件systype.sh的权限,给当前用户及其所在组和其他组添加可执行权限。

l          返回apue.2e目录,执行make命令。

l          在编译apue.2e/threadctl/getenv1.c时,报告ARG_MAX没有定义。在linux-2.6.X下,ARG_MAX被定义在/usr/include/linux/limit.h文件里面。于是,将getenv1.cgetenv3.c文件的include改成#include <linux/limit.h>

l          再次make,报告threads/badexit2.c文件的31行存在类型不匹配。将pthread_self()的返回值强制转换成int

l          执行make,顺利编译所有文件。

l          要在apue.2e子目录下单独编译一个文件,需要对头文件apue.h的路径作相对修改,如改为#include "../include/apue.h"。另一种办法是,直接将apue.h拷贝到/usr/include下面。然后执行类似下面的命令。libapue.a库实现了apue.h中声明的函数。

pydeng@pydeng-laptop:~/apue.2e/file$ gcc –o ls1 ls1.c ../lib/libapue.a

l          Enjoy yourself:)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值