联系
Knight's Tale » 技术

APUE2的源码编译方法

2011-02-27 22:23

机器环境是:Ubuntu 10.04

源码:请下载 apue2源码(UNIX环境高级编程2源码)

源码编译方法:

  1. 请确定你已经下载了apue2源码
  2. 将文件Make.defines.linux里的WKDIR改为你的源代码存放路径,默认情况是WKDIR=/home/sar/apue.2e
  3. 在WKDIR目录下,运行make,发现错误【threadctl/getenv1.c下ARG_MAX未定义】 解决方法是:修改文件getenv1.c和getenv3.c的头文件声明部分,将 “#include <limits.h>”改为“#include <linux/limits.h>”。请参见[1]或[2]
  4. 解决3中的问题后,在WKDIR目录下再次运行make. 成功.
  5. 成功后,会在WKDIR/lib/下生成库文件libapue.a

利用APUE2环境进行UNIX编程(例子):

  1. 我们以WKDIR/fig1.3为例子。
  2. 在WKDIR目录下,运行
    cp fig1.3 fig.1.3.c
  3. 编译并链接fig1.3.c程序文件。
    gcc fig1.3.c -I include/ lib/libapue.a
  4. 成功了。PS: 这里,我们必须指定apue.h这个头文件的地址,所以用-I include/ 。 其次,我们要指定APUE2环境的库文件(这个库是我们在“源码编译方法“里编译出来的,它包含了书本的一些CPP实现),所以我们在编译链接我们自己的CPP文件时,需要把 lib/libapue.a也编译链接进来。可参见[3]

Reference:

  1. http://blog.csdn.net/darkowner/archive/2011/01/07/6121933.aspx
  2. http://ssepqhyneg.blog.163.com/blog/static/4105553920106804956179/
  3. http://bamboo.72pines.com/2010/12/15/ubuntu%E4%B8%8B%E7%BC%96%E8%AF%91apue%E6%BA%90%E7%A0%81/

本文链接地址:APUE2的源码编译方法