新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > Linux下C編程基礎(chǔ)之:實驗內(nèi)容

        Linux下C編程基礎(chǔ)之:實驗內(nèi)容

        作者: 時間:2013-09-13 來源:網(wǎng)絡(luò) 收藏

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

        3.7.3編寫包含多文件的makefile

        1.目的

        通過對包含多文件的makefile的編寫,熟悉各種形式的makefile,并且進一步加深對makefile中用戶自定義變量、自動變量及預定義變量的理解。

        2.過程

        (1)用vi在同一目錄下編輯兩個簡單的hello程序,如下所示:

        #hello.c

        #includehello.h

        intmain()

        {

        printf(Helloeveryone!n);

        }

        #hello.h

        #includestdio.h>

        (2)仍在同一目錄下用vi編輯makefile,且不使用變量替換,用一個目標體實現(xiàn)(即直接將hello.c和hello.h編譯成hello目標體)。然后用make驗證所編寫的makefile是否正確。

        (3)將上述makefile使用變量替換實現(xiàn)。同樣用make驗證所編寫的makefile是否正確。

        (4)編輯另一個makefile,取名為makefile1,不使用變量替換,但用兩個目標體實現(xiàn)(也就是首先將hello.c和hello.h編譯為hello.o,再將hello.o編譯為hello),再用make的“-f”選項驗證這個makefile1的正確性。

        (5)將上述makefile1使用變量替換實現(xiàn)。

        3.步驟

        (1)用vi打開上述兩個代碼文件“hello.c”和“hello.h”。

        (2)在shell命令行中用gcc嘗試編譯,使用命令:“gcchello.c–ohello”,并運行hello可執(zhí)行文件查看結(jié)果。

        (3)刪除此次編譯的可執(zhí)行文件:rmhello。

        (4)用vi編輯makefile,如下所示:

        hello:hello.chello.h

        gcchello.c-ohello

        (5)退出保存,在shell中鍵入:make,查看結(jié)果。

        (6)再次用vi打開makefile,用變量進行替換,如下所示:

        OBJS:=hello.o

        CC:=gcc

        hello:$(OBJS)

        $(CC)$^-o$@

        (7)退出保存,在shell中鍵入make,查看結(jié)果。

        (8)用vi編輯makefile1,如下所示:

        hello:hello.o

        gcchello.o-ohello

        hello.o:hello.chello.h

        gcc-chello.c-ohello.o

        (9)退出保存,在shell中鍵入:make-fmakefile1,查看結(jié)果。

        (10)再次用vi編輯makefile1,如下所示:

        OBJS1:=hello.o

        OBJS2:=hello.chello.h

        CC:=gcc

        hello:$(OBJS1)

        $(CC)$^-o$@

        $(OBJS1):$(OBJS2)

        $(CC)-c$-o$@

        在這里請注意區(qū)別“$^”和“$”。

        (11)退出保存,在shell中鍵入make-fmakefile1,查看結(jié)果。

        4.實驗結(jié)果

        各種不同形式的makefile都能正確地完成其功能。

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


        關(guān)鍵詞: C編程 實驗 Linux VI

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 滁州市| 崇礼县| 黑水县| 鄂伦春自治旗| 司法| 从江县| 芦山县| 普陀区| 武山县| 溆浦县| 大同县| 朝阳市| 蓬莱市| 周至县| 沁源县| 霍林郭勒市| 永春县| 新泰市| 图木舒克市| 泰兴市| 平潭县| 沾化县| 灯塔市| 桂东县| 互助| 囊谦县| 桐梓县| 那坡县| 宣恩县| 广昌县| 海淀区| 恩施市| 平凉市| 双鸭山市| 镇江市| 京山县| 土默特左旗| 咸宁市| 长宁县| 柏乡县| 蚌埠市|