新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 制作和使用自定義C語(yǔ)言庫(kù)文件

制作和使用自定義C語(yǔ)言庫(kù)文件

作者: 時(shí)間:2011-10-12 來(lái)源:網(wǎng)絡(luò) 收藏

目標(biāo)

1.制作一個(gè)庫(kù)文件libGetMax.a ,其中包含一個(gè)外部函數(shù)GetMax ?!『瘮?shù)GetMax的作用是判斷兩個(gè)輸入?yún)?shù)(int型)中的最大值,并返回最大值。

2.制作一個(gè)應(yīng)用范例,使用庫(kù)libGetMax.a中包含的GetMax函數(shù)。

庫(kù)文件的生成

  為敘述方便,請(qǐng)?jiān)贑盤(pán)根目錄中新建一目錄,并將其命名為libtest。以下將C:libtest簡(jiǎn)稱為工作目錄。

  在ICCAVRIDE環(huán)境中新建兩個(gè)文件,分別命名為 GetMax.c 和 GetMax.h,并保存至工作目錄中。兩文件內(nèi)容如下所示:

//------GetMax.h的內(nèi)容如下:------

#ifndef__GETMAX_LIB
#define__GETMAX_LIB
externintGetMax(inta,intb);
#endif

//------GetMax.c的內(nèi)容如下:------

#include"GetMax.h"
intGettMax(inta,intb)
{
return((a>b)?a:b);
}

  執(zhí)行File菜單下的 CompileFile... 項(xiàng)下的 ToObject 項(xiàng),將 GetMax.c 編譯生成相應(yīng)的目標(biāo)文件GetMax.o 。

  執(zhí)行命令ilibw-alibGetMax.aGetMax.o生成庫(kù)文件??蓤?zhí)行文件ilibw.exe位于icc安裝完后的系統(tǒng)目錄(默認(rèn)安裝時(shí)在C:icc)的子目錄bin中。為使用方便可將ilibw.exe拷貝至工作目錄中使用。至此庫(kù)文件libGetMax.a已生成,其對(duì)應(yīng)的頭文件為GetMax.h 。注意庫(kù)文件的命名必須以“l(fā)ib”字樣開(kāi)頭,否則在IDE中編譯下面的應(yīng)用范例過(guò)程中自動(dòng)鏈接時(shí)會(huì)報(bào)錯(cuò)(手動(dòng)鏈接除外)。

應(yīng)用范例的編寫(xiě)和編譯

  在工作目錄中建立一個(gè)工程Test.prj。工程Test.prj中包含一個(gè)C源程序文件Test.c。Test.C的源代碼如下所示:

//------Test.c的源代碼如下:------

#include"GetMax.h"
voidmain(void)
{
intResult,Value1,Value2;
Value1=0x10FF;
Value2=0x0FFF;
Result=GetMax(Value1,Value2);
}

  然后,將前一步驟生成的庫(kù)文件libGetMax.a拷貝至icc安裝完后的系統(tǒng)目錄(默認(rèn)安裝時(shí)在C:icc)的子目錄lib中。再執(zhí)行Project菜單下的Option項(xiàng),修改Target表單中的AdditionalLib項(xiàng),在文本框中輸入GetMax(注意不能寫(xiě)成libGetMax.a)。

  完成上述步驟后,就以編譯和調(diào)試test.prj。

  如果在其它工程中需要使用上述庫(kù)函數(shù)GetMax,只需拷貝所需的GetMax.h和libGetMax.a,并進(jìn)行相應(yīng)配置就可以了。

  也可以在已有的庫(kù)中增加一些自定義的函數(shù)。詳細(xì)參考ICCAVRIDE中的在線幫助。

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程




關(guān)鍵詞: C庫(kù)文件

評(píng)論


技術(shù)專區(qū)

關(guān)閉