Unix环境高级编程在linux下的源码配置

来源:互联网 发布:淘宝2016版本下载安装 编辑:程序博客网 时间:2024/05/16 14:24
1. 先去那个网站downlowd apue 的tar.gz包,然后解压至电脑中的某个目录,比如我的是在/home/user/下,然后进入解压目录apue.2e,修改Make.defines.linux中的WKDIR=/home/xxx/apue.2e,为WKDIR=/home/user/apue.2e,这就是我们将要make的工作目录(存放apue.2e的目录),然后再进入std目录,用vi打开linux.mk,将里面的nawk全部改为awk,可以使用这个命令 :1.$s/nawk/awk/g (注意前面有冒号)。

2. 在apue.2e/include/apue.h中添加一行:#define ARG_MAX 4096

3.打开apue.2e/threadctl/getenv3.c和getenv1.c,添加一行:#include "apue.h"。若遇到错误: /usr/include/i386-linux-gnu/bits/timex.h:31:7: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘.’ token。则:修改这个apue.2e/ipp/ipp.h文件中的宏名称,例如改为Status。然后将apue.2e/ipp/printd.c中977行的 hp->status 改为hp->Status


4.编译通过。下面我们把apue的头文件和库文件放入系统:把头文件apue.h放到/usr/include/中,注意要以root用户操作以下命令

cp ~/apue.2e/include/apue.h /usr/include
cp ~/apue.2e/lib/libapue.a /usr/lib/


5. 编译运行程序
gcc  源程序.c -o 可执行程序名 -lapue
注意 :若-lapue 写在了源程序的前面会出现错误 eg. gcc ls1.c -o ls1 -lapue
因为
.a在链接的时候,必须放在文件之后
.so在链接的时候,对位置没有要求,前后都可以


0 0