新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 如何制作和使用自定義C庫文件

        如何制作和使用自定義C庫文件

        作者: 時間:2012-04-29 來源:網(wǎng)絡(luò) 收藏

        目標(biāo)

        本文引用地址:http://www.104case.com/article/171545.htm

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

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

        的生成

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

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

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

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

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

        #includeGetMax.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生成庫文件。可執(zhí)行文件ilibw.exe位于icc安裝完后的系統(tǒng)目錄(默認(rèn)安裝時在C:icc)的子目錄bin中。為方便可將ilibw.exe拷貝至工作目錄中。至此庫文件libGetMax.a已生成,其對應(yīng)的頭文件為GetMax.h 。注意庫文件的命名必須以“lib”字樣開頭,否則在IDE中編譯下面的應(yīng)用范例過程中自動鏈接時會報錯(手動鏈接除外)。

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

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

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

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

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

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

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

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



        關(guān)鍵詞: 文件 定義 使用 制作 如何

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 自贡市| 蓝山县| 苏尼特右旗| 宜丰县| 铜鼓县| 托里县| 会理县| 卢湾区| 嘉峪关市| 扶余县| 新建县| 昭平县| 西宁市| 丹凤县| 绥德县| 新源县| 永寿县| 永登县| 韶关市| 建宁县| 海兴县| 九龙城区| 永平县| 巴青县| 宁都县| 隆化县| 高州市| 仪征市| 余庆县| 阿拉善右旗| 廊坊市| 民权县| 都匀市| 陈巴尔虎旗| 墨脱县| 荃湾区| 枣强县| 灵璧县| 舞钢市| 沙洋县| 江北区|