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

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

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

  1. $ gcc -c bill.c fred.c
  2. $ ls *.o
  3. bill.o      fred.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);
復制代碼


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

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

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

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

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

沒(méi)有錯誤的話(huà)應該會(huì )輸出

  1. bill:wo passed Hello,World
復制代碼

現在創(chuàng )建和使用庫函數

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

現在庫函數創(chuàng )建成功,兩個(gè)目標函數已經(jīng)添加成功了
繼續:

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

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

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

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

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页