APUE 之 随书源码的编译与使用, 基本环境搭建

来源:互联网 发布:淘宝店怎么找供应商 编辑:程序博客网 时间:2024/06/05 10:37

我的环境是 Ubuntu11.10 发行版. 

内核版本是3.0.0


因为 APUE  使用的是 nawk, 而 Ubuntu 自带的是 nawk, 应该是不修改可以直接使用的.

网上也有些方法是要安装 gawk 然后修改 std/linux.mk  将两个 nawk 改为 gawk 来实现的. (要放在 make 之前)

所以, 就要使用如下命令来安装 gawk 了: 

sudo apt-get install gawk


然后............


1.到 www.apuebook.com 去下载源代码.

 

2. tar 解包 cd apue.2e 图形界面右键 Open with Archibe Manager 然后 Extrat. 

 

3.vim Make.defines.linux   修改变量WKDIR,指向 apue 源码所在位置, 我的在 /home/think/apue/apue.2e/ 所以:

WKDIR= /home/think/apue/apue.2e/


4. vim include/apue.h  增加常量 ARG_MAX,这是 threadctl/getenv1.c 和 threadctl/getenv3.c 要用到的;

    4096 是参考值,如果有问题,自行修改。

#define ARG_MAX 4096

 

5.vim threadctl/getenv1.c   增加  #include "apue.h"

 

6.vim threadctl/getenv3.c   增加  #include "apue.h"

 

7.vim threads/badexit2.c   修改第31行,将 pthread_self() 的返回值转换为 int 类型。

printf("thread 2: ID is %d\n", (int)pthread_self()); /* 注意, 注释符号不要使用 '//' 格式 */


8. make

 

9. sudo cp include/apue.h   /usr/include/

    sudo cp  lib/libapue.a /usr/lib

 

测试一下,用-lapue命令让编译器链接apue库. 

gcc main.c -lapue

通过......


还有一种方法就是:


将 apue.h 和 error.c 复制到 /usr/include/ 目录下.

然后再将 apue.h 最后一行的 #endif 前面添加 #include "error.c" 就 OK 了. 

这个也是可以的. 使用时直接包含头文件就行了. 由于在系统目录下, 无所谓 <> 和 "" 了.



原创粉丝点击