色偷偷偷久久伊人大杳蕉,色爽交视频免费观看,欧美扒开腿做爽爽爽a片,欧美孕交alscan巨交xxx,日日碰狠狠躁久久躁蜜桃

一個(gè)比較簡(jiǎn)單的Linux下制作靜態(tài)庫(kù)的例子

發(fā)布時(shí)間:2009-9-18 17:44    發(fā)布者:f.luo
關(guān)鍵詞: Linux , 靜態(tài)庫(kù)
看書(shū)的時(shí)候發(fā)現(xiàn)個(gè)小例子,感覺(jué)不錯(cuò)。
分享一下,高手就不用來(lái)浪費(fèi)時(shí)間了。
Linux下如何把自己寫(xiě)的函數(shù)做成靜態(tài)編譯庫(kù)。
    這個(gè)例子中,我們創(chuàng)建了一個(gè)我們自己的小小的庫(kù),該庫(kù)包含兩個(gè)函數(shù)。而在例子中,我們使用了其中一個(gè)函數(shù)。這兩個(gè)函數(shù)分別為fredbill,作用為打印問(wèn)候語(yǔ)。
    首先,為每一個(gè)函數(shù)各創(chuàng)建一個(gè)獨(dú)立的源程序。建立兩個(gè)C文件,分別為fred.c和bill.c簡(jiǎn)單看下面的代碼。
第一個(gè):

  1. #include
  2. void fred(int arg)
  3. {
  4.          printf(“fred: we passed %d\n”,arg);
  5. }
復(fù)制代碼
第二個(gè):

  1. #include
  2. void bill(char *arg)
  3. {
  4.       printf(“bill: we passed %s\n", arg);
  5. }
復(fù)制代碼
現(xiàn)在可以編譯這些函數(shù)。使用gcc-c參數(shù)。編譯:

  1. $ gcc -c bill.c fred.c
  2. $ ls *.o
  3. bill.o      fred.o
復(fù)制代碼
頭文件為了便于以后調(diào)用,編寫(xiě)個(gè)頭文件,文件名為lib.h:
  1. /*
  2. This is lib.h. It declares the functions fred and bill for users
  3. */
  4. void bill(char *);
  5. void fred(int);
復(fù)制代碼


好了,可以寫(xiě)主程序了.主程序調(diào)用函數(shù)bill()。

  1. #include
  2. #include “l(fā)ib.h”
  3. int main()
  4. {
  5.     bill(Hello World);
  6.     exit(0);
  7. }
復(fù)制代碼
用到的文件都完成了,下面主要是編譯。
本文地址:http://m.54549.cn/thread-4333-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
f.luo 發(fā)表于 2009-9-18 17:44:55
本帖最后由 f.luo 于 2009-9-18 18:12 編輯

現(xiàn)在可以進(jìn)行進(jìn)行編譯和測(cè)試了

  1. $ gcc -c program.c
  2. $ gcc -o program program.o bill.o
  3. $ ./program
  4. bill: we passed Hello World
  5. $
復(fù)制代碼

沒(méi)有錯(cuò)誤的話(huà)應(yīng)該會(huì)輸出

  1. bill:wo passed Hello,World
復(fù)制代碼

現(xiàn)在創(chuàng)建和使用庫(kù)函數(shù)

  1. $ ar crv libfoo.a bill.o fred.o
  2. a - bill.o
  3. a - fred.o
復(fù)制代碼

現(xiàn)在庫(kù)函數(shù)創(chuàng)建成功,兩個(gè)目標(biāo)函數(shù)已經(jīng)添加成功了
繼續(xù):

  1. $ ar crv libfoo.a bill.o fred.o
  2. a - bill.o
  3. a - fred.o
復(fù)制代碼

現(xiàn)在可以使用創(chuàng)建的庫(kù)函數(shù)進(jìn)行編譯了
刪掉原來(lái)的program二進(jìn)制文件

  1. $ gcc -o program program.o libfoo.a
  2. $ ./program
  3. bill: we passed Hello World
  4. $
復(fù)制代碼

OK,不出錯(cuò)誤的話(huà)應(yīng)該成功了。
kendying 發(fā)表于 2009-9-22 00:30:40
受教!
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表