在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是makefile?為什么需要用makefile?

學(xué)益得智能硬件 ? 來源:學(xué)益得智能硬件 ? 2024-03-06 16:32 ? 次閱讀

什么是makefile?為什么需要用makefile?

正常編譯一個(gè)c文件,直接敲命令:

gcc hello.c -o hello
就行。

如果文件稍微多幾個(gè),gcc 里面多加幾個(gè)問題也不大。

但是如果給你一個(gè)完整的項(xiàng)目工程,里面包含幾千甚至幾萬個(gè)文件,而且又分成不同的文件夾,再去敲命令一個(gè)一個(gè)編譯,顯然有點(diǎn)不現(xiàn)實(shí)。

細(xì)心的同學(xué)會發(fā)現(xiàn),凡是這些工程項(xiàng)目,里面都會有個(gè)叫Makefile的文件,要么這個(gè)文件直接存在,要么可以通過某種方式生成。

Makefile就是工程管理器,里面指定了本項(xiàng)目的編譯規(guī)則。

先編譯哪些,再編譯哪些,要鏈接哪些庫等等。

簡單的Makefile確實(shí)挺簡單,但是復(fù)雜的Makefile也很復(fù)雜。

下面來寫個(gè)簡單的Makefile。 假設(shè)現(xiàn)在只有一個(gè)源文件 hello.c。
root@turbo:~# ls
hello.c
root@turbo:~#
打開Makefile,先寫目標(biāo)文件,就是最終要生成的二進(jìn)制,冒號后面寫上依賴文件,就是通過哪個(gè)文件可以生成目標(biāo)文件。
hello:hello.c
另起一行,先敲一下tab鍵,然后寫編譯的規(guī)則,就是我們平時(shí)敲的命令。
hello:hello.c
  gcc hello.c -o hello
執(zhí)行Makefile,只要敲make就行,然后就能順利編譯。
make
再把文件增加兩個(gè)。

Makefile中,目標(biāo)文件不變,依賴文件以及下面編譯規(guī)則都要增加兩個(gè)文件。

這樣確實(shí)麻煩了些。

Makefile里面也有變量一說,引用變量的時(shí)候,用 $ 符號。

有了變量,下次再增加什么文件,只要往后接就行。
Target=hello
Object=hello.cprint.c show.c
$(Target):$(Object)
  gcc $(Object) -o $(Target)
不過一般依賴文件也不寫成 .c ,因?yàn)樽罱K的可執(zhí)行文件都是由匯編后的文件合成,也就是多個(gè) .o 文件經(jīng)過鏈接變成了可執(zhí)行文件,所以這里一般寫成 .o 。
Target=hello
Object=hello.oprint.oshow.o
$(Target):$(Object)
  gcc $(Object) -o $(Target)
那 .o 文件又怎么來,下面可以繼續(xù)寫由 .c 生成 .o ,不過Makefile里面有隱含規(guī)則,所以這幾行可以不寫。

make的時(shí)候,過程很清晰,先從.c 變成 .o 再把 .o 合成最終的可執(zhí)行文件。
root@turbo:~# make
cc    -c -o hello.o hello.c
cc    -c -o print.o print.c
cc    -c -o show.o show.c
gcc hello.o print.o show.o -o hello
root@turbo:~#



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 二進(jìn)制
    +關(guān)注

    關(guān)注

    2

    文章

    805

    瀏覽量

    42202
  • Makefile
    +關(guān)注

    關(guān)注

    1

    文章

    125

    瀏覽量

    19625

原文標(biāo)題:如何寫一個(gè)簡單的Makefile

文章出處:【微信號:學(xué)益得智能硬件,微信公眾號:學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    Makefile中文教程 -下載

    Makefile中文教程,免費(fèi)下載哦。
    發(fā)表于 03-25 08:57 ?68次下載

    教你寫Makefile

    教你寫Makefile 什么是makefile?或許很多Winodws的程序員都不知道這個(gè)東西,因?yàn)槟切¦indows的IDE都為你做了這個(gè)工作,但我覺得要作一個(gè)好的和professional的程序員,
    發(fā)表于 02-10 14:24 ?37次下載

    駕馭Makefile

    到項(xiàng)目中,需要的知識是線、甚至是面。這篇文章以helloworld作為開篇,接著是simple項(xiàng)目、complicated項(xiàng)目以及huge項(xiàng)目,一步一步的引入了Makefile中的概念,以及告訴你做一個(gè)實(shí)
    發(fā)表于 01-05 17:05 ?9次下載

    跟我一起學(xué)makefile

    關(guān)于makefile學(xué)習(xí),深入了解嵌入式下makefile的編寫
    發(fā)表于 05-23 18:21 ?0次下載

    駕馭makefile

    一本Makefile的經(jīng)典教程,深入淺出,易學(xué)易懂
    發(fā)表于 06-17 16:16 ?9次下載

    Linux內(nèi)核Makefile文件

    Makefile文件的詳細(xì)編寫過程
    發(fā)表于 08-28 09:25 ?14次下載

    linux makefile教程

     什么是makefile?或許很多Winodws的程序員都不知道這個(gè)東西,因?yàn)槟切¦indows的IDE都為你做了這個(gè)工作,但我覺得要作一個(gè)好的和professional的程序員,makefile
    發(fā)表于 11-12 09:11 ?5638次閱讀

    makefile的基本語法

     在Makefile中,最重要的三個(gè)概念是:目標(biāo)(target)、依賴關(guān)系(dependency)和命令(command)。目標(biāo)是指要干什么,即運(yùn)行make后生成什么;依賴是指明目標(biāo)所依賴的其他目標(biāo);命令則告訴make如何生成目標(biāo),這三個(gè)概念是通過Makefile中的規(guī)則
    發(fā)表于 11-12 10:15 ?1.2w次閱讀

    windows平臺下makefile操作教程

    Makefile一個(gè)工程中的源文件不計(jì)其數(shù),其按類型、功能、模塊分別放在若干個(gè)目錄中,makefile定義了一系列的規(guī)則來指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件
    發(fā)表于 11-24 17:14 ?1.2w次閱讀
    windows平臺下<b class='flag-5'>makefile</b>操作教程

    Makefile是什么?Makefile工作原理是怎樣的?Makefile經(jīng)典教程免費(fèi)下載

    Makefile的重要性 會不會寫makefile,從一個(gè)側(cè)面說明了一個(gè)人是否具備完成大型工程的能力 makefile帶來的好處就是——“自動化編譯”,一旦寫好,只需要一個(gè)make
    發(fā)表于 09-12 17:19 ?0次下載
    <b class='flag-5'>Makefile</b>是什么?<b class='flag-5'>Makefile</b>工作原理是怎樣的?<b class='flag-5'>Makefile</b>經(jīng)典教程免費(fèi)下載

    嵌入式中的Makefile應(yīng)用

    文章目錄一.Makefile 引入二. Makefile語法1.通配符2.假象目標(biāo)3.變量三.Makefile函數(shù)四.實(shí)例本文主要總結(jié)一下嵌入式開發(fā)中的Makefile,一般項(xiàng)目中都
    發(fā)表于 11-03 17:06 ?11次下載
    嵌入式中的<b class='flag-5'>Makefile</b>應(yīng)用

    MakefileMakefile與shell命令的聯(lián)系

    博主最近在項(xiàng)目實(shí)踐過程中,需要深度定制項(xiàng)目的Makefile,其中有些復(fù)雜的流程必須得借助shell腳本才能高效地完成,為此博主特意深入學(xué)習(xí)了在Makefile種調(diào)用shell命令的方法。
    的頭像 發(fā)表于 07-11 09:06 ?4031次閱讀
    【<b class='flag-5'>Makefile</b>】<b class='flag-5'>Makefile</b>與shell命令的聯(lián)系

    Makefile】簡單實(shí)用的Makefile模板來了

    【Linux + Makefile】簡單實(shí)用的Makefile模板來了
    的頭像 發(fā)表于 08-31 12:46 ?2140次閱讀
    【<b class='flag-5'>Makefile</b>】簡單實(shí)用的<b class='flag-5'>Makefile</b>模板來了

    什么是Makefile

    如果您有多個(gè) c、c++ 和其他語言的文件,并且想通過終端命令編譯它們,我們該如何編譯他們呢?為了解決這類問題,Makefile就出現(xiàn)了。
    的頭像 發(fā)表于 02-17 10:41 ?5164次閱讀
    什么是<b class='flag-5'>Makefile</b>?

    Makefile可以做什么?Makefile的基本格式

    Makefile可以根據(jù)指定的依賴規(guī)則和文件是否有修改來執(zhí)行命令。常用來編譯軟件源代碼,只需要重新編譯修改過的文件,使得編譯速度大大加快。
    的頭像 發(fā)表于 01-25 11:18 ?999次閱讀
    主站蜘蛛池模板: 免费黄色一级 | 色婷婷色综合激情国产日韩 | 国产综合在线观看视频 | 日本内谢69xxxx免费 | 播色屋| 一区二区三区免费精品视频 | 免费看h视频 | 国产精品久久婷婷六月丁香 | 夜夜夜夜夜夜夜工噜噜噜 | 视频在线免费 | 人人插人人费 | 五月天婷婷视频在线观看 | 美国色天使 | 亚洲第一成网站 | 午夜毛片免费观看视频 | 高清国产一区二区三区 | 35pao免费视频 | 最新欧美精品一区二区三区 | www.99在线| 亚洲一级免费视频 | 性欧美黑人| 色播久久| 手机看片久久青草福利盒子 | 窝窝午夜视频 | 极品美女写真菠萝蜜视频 | 97色婷婷成人综合在线观看 | 又粗又硬又猛又黄的免费视频黑人 | 中文字幕一区二区三区四区五区 | 人人搞人人干 | 色视频大全| 天天草夜夜骑 | 性夜影院午夜看片 | 99综合在线| 色多多官网 | 久久成人国产 | 97影院理伦在线观看 | 国产成人高清一区二区私人 | 亚洲人在线 | 女人夜夜春 | 亚洲国产女人aaa毛片在线 | 深夜视频免费在线观看 |