新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Linux下C編程基礎之:實驗內容

        Linux下C編程基礎之:實驗內容

        作者: 時間:2013-09-13 來源:網絡 收藏

        本文引用地址: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,且不使用變量替換,用一個目標體實現(即直接將hello.c和hello.h編譯成hello目標體)。然后用make驗證所編寫的makefile是否正確。

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

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

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

        3.步驟

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

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

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

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

        hello:hello.chello.h

        gcchello.c-ohello

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

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

        OBJS:=hello.o

        CC:=gcc

        hello:$(OBJS)

        $(CC)$^-o$@

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

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

        hello:hello.o

        gcchello.o-ohello

        hello.o:hello.chello.h

        gcc-chello.c-ohello.o

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

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

        OBJS1:=hello.o

        OBJS2:=hello.chello.h

        CC:=gcc

        hello:$(OBJS1)

        $(CC)$^-o$@

        $(OBJS1):$(OBJS2)

        $(CC)-c$-o$@

        在這里請注意區別“$^”和“$”。

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

        4.實驗結果

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

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


        關鍵詞: C編程 實驗 Linux VI

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 大冶市| 阳城县| 海阳市| 满城县| 新郑市| 革吉县| 彩票| 靖远县| 新源县| 永福县| 年辖:市辖区| 正定县| 陆川县| 朝阳市| 隆子县| 宜昌市| 卓尼县| 濮阳市| 广河县| 宣城市| 读书| 无为县| 英山县| 临泽县| 湾仔区| 唐山市| 开化县| 石门县| 上林县| 蓝山县| 安化县| 青岛市| 东莞市| 章丘市| 淄博市| 阿拉善盟| 苏尼特右旗| 海安县| 元阳县| 紫金县| 铁力市|