新聞中心

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

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

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

本文引用地址:http://m.butianyuan.cn/article/257147.htm

3.7.3編寫包含多文件的makefile

1.目的

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

2.過程

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

#hello.c

#includehello.h

intmain()

{

printf(Helloeveryone!n);

}

#hello.h

#includestdio.h>

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

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

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

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

3.步驟

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

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

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

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

hello:hello.chello.h

gcchello.c-ohello

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

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

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.實(shí)驗(yàn)結(jié)果

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

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


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

評論


相關(guān)推薦

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

關(guān)閉