學習 《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在連結的時候,對位置沒有要求,前後都可以
學習 《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在連結的時候,對位置沒有要求,前後都可以