linux下如何配置apue

来源:互联网 发布:常见网络安全技术分析 编辑:程序博客网 时间:2024/05/16 02:10

学习 《unix高级编程》

1.到www.apuebook.com下载源码
 
2.tar解包,cd apue.2e
 
3.vi Make.defines.linux   修改变量WKDIR,指向你的apue源码的位置,我的是/home/huangz/code/apue.2e,所以
  WKDIR=/home/huangz/code/apue.2e
 
4.vi include/apue.h  增加一个常量ARG_MAX,这是threadctl/getenv1.c和threadctl/getenv3.c要用到的;4096这个值是参考里给的,如果有问题,自己修改吧。
  #define ARG_MAX 4096
 
5.vi threadctl/getenv1.c   增加
  #include "apue.h"
 
6.vi threadctl/getenv3.c   增加
  #include "apue.h"
 
7.vi threads/badexit2.c   修改第31行,将pthread_self()的返回值转换为int类型。
  printf("thread 2: ID is %d\n", (int)pthread_self());
 
8. http://blog.csdn.net/ce_endless/article/details/6885708
 
9.make
 
10.sudo cp include/apue.h /usr/include
   sudo cp lib/libapue.a /usr/lib
 
好了,测试一下,记得要用-lapue命令让编译器链接apue库
gcc main.c -lapue


 编译运行程序

gcc  源程序.c -o 可执行程序名 -lapue

注意 :若-lapue 写在了源程序的前面会出现错误 eg. gcc ls1.c -o ls1 -lapue[/code]

因为

.a在链接的时候,必须放在文件之后
.so在链接的时候,对位置没有要求,前后都可以