<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          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://www.ex-cimer.com/article/257147.htm

          3.7.3編寫包含多文件的makefile

          1.目的

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

          2.過程

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

          #hello.c

          #includehello.h

          intmain()

          {

          printf(Helloeveryone!n);

          }

          #hello.h

          #includestdio.h>

          (2)仍在同一目錄下用vi編輯makefile,且不使用變量替換,用一個目標(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)編輯另一個makefile,取名為makefile1,不使用變量替換,但用兩個目標(biāo)體實(shí)現(xiàn)(也就是首先將hello.c和hello.h編譯為hello.o,再將hello.o編譯為hello),再用make的“-f”選項(xiàng)驗(yàn)證這個makefile1的正確性。

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

          3.步驟

          (1)用vi打開上述兩個代碼文件“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)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();