UNIX環境高級編程(第二版)/ APUE 源碼編譯與使用

爲了用APUE的源碼折騰了一下,網上很多方法都不能用,或者有小問題,特此記錄。

 

注意,不同環境的編譯提示有所不同,如果你的環境和我的相似,那麼應該沒問題。

 

環境

 

Linux mypad 2.6.38-ARCH #1 SMP PREEMPT Tue May 3 06:04:40 UTC 2011 i686 Intel(R) Core(TM)2 Duo CPU T6570 @ 2.10GHz GenuineIntel GNU/Linux

 

確保你已經安裝了gcc和gawk。

 

步驟

 

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.vi std/linux.mk   將兩個nawk改爲gawk

 

9.make

 

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

   sudo cp lib/libapue.a /usr/lib

 

好了,測試一下,記得要用-lapue命令讓編譯器鏈接apue庫

gcc main.c -lapue

 

 

參考:http://hi.baidu.com/crazyboymx/blog/item/d3520bde28d79172d0164eb9.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章