1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      初識makefile的結(jié)構(gòu)(二)-創(chuàng)新互聯(lián)

              我們在上節(jié)中說到 makefile 的本質(zhì)就是一個(gè)腳本程序,用來解釋執(zhí)行的。那么它的意義是用于定義源文件間的依賴關(guān)系,說明如何編譯各個(gè)源文件并生成可執(zhí)行文件。我們來看看依賴的定義,如下

      為上街等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及上街網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、上街網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

      初識 makefile 的結(jié)構(gòu)(二)

              下來我們來分析下 makefile中元素的意義:a> targets:通常是需要生成的目標(biāo)文件名,make 所需執(zhí)行的命令名稱;b> perequisities:當(dāng)前目標(biāo)所依賴的其他目標(biāo)或文件;c> command:完成目標(biāo)所需要執(zhí)行的命令。我們來說說規(guī)則中的注意事項(xiàng):a> targets可以包含多個(gè)目標(biāo),使用空格對多個(gè)目標(biāo)名進(jìn)行分隔;b> perequisities可以包含多個(gè)依賴,使用空格對多個(gè)依賴進(jìn)行分隔;c> [ Tab ]鍵 '\t',每一個(gè)命令行必須以 [ Tab ] 字符開始,[ Tab ] 字符告訴 make 此行是一個(gè)命令行;d> 續(xù)行符 \,可以將內(nèi)容分開寫到下一行,提高代碼可讀性。

              下來我們看看一個(gè) makefile 的依賴示例,如下

      初識 makefile 的結(jié)構(gòu)(二)

              依賴規(guī)則是:a> 當(dāng)目標(biāo)對應(yīng)的文件不存在,執(zhí)行對應(yīng)命令;b> 當(dāng)依賴在時(shí)間上比目標(biāo)更新,執(zhí)行對應(yīng)命令;c> 當(dāng)依賴關(guān)系連續(xù)發(fā)生時(shí),對比依賴鏈上的每一個(gè)目標(biāo)。在這講個(gè)小技巧:makefile 中可以在命令前加上 @ 符,作用為命令無回顯。

              我們還是以代碼為例來進(jìn)行分析說明

      all : test     @echo "make all" test :      @echo "make test"

              我們定義的目標(biāo) all 的依賴是 test,而 test 目標(biāo)則沒有依賴,只是執(zhí)行打印語句。當(dāng) test 目標(biāo)正確執(zhí)行后,all 目標(biāo)的執(zhí)行語句便會進(jìn)行正常輸出。也就是說,先打印 make test,在輸出 make all。我們來看看編譯結(jié)果

      初識 makefile 的結(jié)構(gòu)(二)

              那為什么只打印出這兩句,沒有打印出上一節(jié)我們看到的 echo "make all" 呢?原因就是我們在它們前面加的 @ 無回顯符號,下來我們?nèi)サ?@ 符號看看編譯效果

      初識 makefile 的結(jié)構(gòu)(二)

              以后如果我們不想看到 echo 那條命令本身的話,可以加上 @ 無回顯符號。下來我們來看個(gè) make 的編譯案例,結(jié)構(gòu)如下

      初識 makefile 的結(jié)構(gòu)(二)

              我們來根據(jù)上面的結(jié)構(gòu)編寫相應(yīng)的 makefile 程序,看看執(zhí)行效果

      func.c 源碼

      #include  int foo() {     printf("void foo()\n"); }

      main.c 源碼

      extern void foo(); int main() {     foo();     return 0; }

      makefile 源碼

      hello.out : func.o main.o     gcc -o hello.out func.o main.o func.o : func.c      gcc -o func.o -c func.c main.o : main.c     gcc -o main.o -c main.c

              我們來看看編譯結(jié)果

      初識 makefile 的結(jié)構(gòu)(二)

              我們看到已經(jīng)實(shí)現(xiàn)了。我們再來在 func.c 中打印的語句前加上 hello,再來看看編譯結(jié)果

      初識 makefile 的結(jié)構(gòu)(二)

              我們看到再次進(jìn)行編譯時(shí),它只編譯了 func.c 文件,沒有編譯 main.c 文件,這也極大的提升了嵌入式編譯的效率。那么在這塊有個(gè)小技巧,在工程開發(fā)中可以將最終可執(zhí)行文件名和 all 同時(shí)作為 makefile 中第一條規(guī)則的目標(biāo),如下

      初識 makefile 的結(jié)構(gòu)(二)

              我們再次來編譯,看看編譯結(jié)果

      初識 makefile 的結(jié)構(gòu)(二)

              我們看到它說 hello.out 是最新的,執(zhí)行的結(jié)果和我們之前是一樣的。因此這個(gè)小技巧可以極大的提高我們因重復(fù)編譯帶來的效率低下的問題。我們也可以直接 make all 進(jìn)行再次編譯,如下

      初識 makefile 的結(jié)構(gòu)(二)

              這次因?yàn)樵次募紱]有改動(dòng),所以只執(zhí)行了 hello.out 目標(biāo)后面的語句。提高對 makefile 結(jié)構(gòu)的學(xué)習(xí),總結(jié)如下:1、makefile 用于定義源文件間的依賴關(guān)系;2、makefile 說明如何編譯各個(gè)源文件并生成可執(zhí)行文件;3、makefile 中的目標(biāo)之間存在連續(xù)依賴關(guān)系;4、依賴存在并且命令執(zhí)行成功是目標(biāo)完成的充要條件。

              歡迎大家一起來學(xué)習(xí) makefile 語言,可以加我QQ:243343083。

      另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


      新聞標(biāo)題:初識makefile的結(jié)構(gòu)(二)-創(chuàng)新互聯(lián)
      分享URL:http://www.ef60e0e.cn/article/pgpdd.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        黄石市| 丹寨县| 水富县| 定州市| 皮山县| 黔东| 六盘水市| 社旗县| 巴林右旗| 汨罗市| 县级市| 通河县| 平罗县| 博客| 徐州市| 内丘县| 安国市| 大方县| 黔西县| 寻乌县| 会理县| 濉溪县| 施甸县| 当阳市| 上林县| 鸡泽县| 讷河市| 双牌县| 安义县| 全南县| 饶河县| 正蓝旗| 永善县| 沐川县| 滦平县| 保定市| 涪陵区| 濮阳市| 长兴县| 中卫市| 兰考县|