您的位置:首页 > 运维架构 > Linux

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

2014-03-24 00:01 253 查看
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在链接的时候,对位置没有要求,前后都可以
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: