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

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

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

Linux Makefile的基本使用

CHANBAEK ? 來(lái)源:嵌入式工程師成長(zhǎng)日記 ? 作者:嵌入式工程師成長(zhǎng) ? 2023-01-12 17:49 ? 次閱讀

文中所使用的Linux版本是:Ubuntu

01 make工具和makefile的引入

當(dāng)源碼文件比較多的時(shí)候不適合通過直接輸入gcc來(lái)編譯,需要一個(gè)自動(dòng)化編譯的工具

make工具的工作包括:

1.如果只修改了某幾個(gè)源文件,則只編譯這幾個(gè)源文件

2.如果某個(gè)頭文件被更改了,則重新編譯所有包含該頭文件的源文件

make工具主要用于完成自動(dòng)化編譯,make編譯時(shí)需要makefile文件提供編譯文件

02 Vim編輯器操作Makefile

配置Vim編輯器

sudo vi /etc/vim/vimrc

set ts=4——設(shè)置Tab鍵為4個(gè)字節(jié)

set nu——每行的開頭顯示行號(hào)

(在最下面添加上面兩個(gè)語(yǔ)句)

圖片

使用步驟

(1)六 制作文件

②編輯以下代碼:

規(guī)則格式:

目標(biāo)... :依賴文件集合...

命令1

命令2

....

圖片

(每條命令必須以Tab開始,不能使用空格)

③輸入指令make

④最后輸入指令make clean 可以清楚所有的.o文件

圖片

03Makefile基本語(yǔ)法

makefile變量的使用

objects = main.o input.o calcu.o

主:$(對(duì)象)

GCC -o main $(對(duì)象)

圖片

賦值“=”

名稱 = 管理員1

當(dāng)前 =$(名稱)

名稱 = 管理員

打?。?/p>

@echo 當(dāng)前:$(當(dāng)前)

這里打印的值時(shí)admin,而不是admin1,因?yàn)榇蛴〉氖亲罱K變量的值

圖片

圖片

賦值“:=”

名稱 = 管理員1

當(dāng)前 :=$(名稱)

名稱 = 管理員

打?。?/p>

@echo 當(dāng)前:$(當(dāng)前)

這里打印的值時(shí)admin1,而不是admin。 這就是和“=”的區(qū)別

圖片

圖片

賦值“? =”

當(dāng)前 ?=你好

打印:

@echo 當(dāng)前:$(當(dāng)前)

//這里打印hello

當(dāng)前:=管理員

當(dāng)前?=你好

打印:

@echo 當(dāng)前:$(當(dāng)前)

//這里打印的值時(shí)admin1,而不是admin。 這就是和“=”的區(qū)別

圖片

圖片

自動(dòng)化變量

@,%,<,?,^,+,$*

最常用的三個(gè)變量:@,<,$^

功能表:

圖片

圖片

圖片

偽目標(biāo)

偽目標(biāo)不代表真正的目標(biāo)名,一般的目標(biāo)名都是要生成文件,而偽目標(biāo)不代表真正的目標(biāo)名,在執(zhí)行make命令時(shí)通過指定這個(gè)偽目標(biāo)來(lái)執(zhí)行其所在規(guī)則定義的命令

如果在工作目錄下有相同的文件時(shí),需要聲明偽目標(biāo),例如. PHONY:XXX

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

    關(guān)注

    87

    文章

    11469

    瀏覽量

    212911
  • VIM
    VIM
    +關(guān)注

    關(guān)注

    0

    文章

    136

    瀏覽量

    15669
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    676

    瀏覽量

    33796
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    818

    瀏覽量

    31817
  • Makefile
    +關(guān)注

    關(guān)注

    1

    文章

    125

    瀏覽量

    19601
收藏 人收藏

    評(píng)論

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

    Makefile】C文件包含的頭文件修改,但不重新編譯?

    Linux + MakefileMakefile的高階用法:解決C文件包含的頭文件修改了,但C文件不重新編譯的問題!
    的頭像 發(fā)表于 09-08 08:53 ?6042次閱讀
    【<b class='flag-5'>Makefile</b>】C文件包含的頭文件修改,但不重新編譯?

    Linux Makefile通用模板詳解

    對(duì)于Windows下開發(fā),很多IDE都集成了編譯器,如Visual Studio,提供了“一鍵編譯”,編碼完成后只需一個(gè)操作即可完成編譯、鏈接、生成目標(biāo)文件。
    發(fā)表于 08-08 09:48 ?1189次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>Makefile</b>通用模板詳解

    #硬聲創(chuàng)作季 #Linux 學(xué)Linux-1.16 make工具和Makefile的引入-1

    LinuxMakefile
    水管工
    發(fā)布于 :2022年11月10日 17:19:02

    #硬聲創(chuàng)作季 #Linux 學(xué)Linux-1.17 Makefile基本語(yǔ)法-1

    LinuxMakefile
    水管工
    發(fā)布于 :2022年11月10日 17:19:45

    #硬聲創(chuàng)作季 #Linux 學(xué)Linux-1.17 Makefile基本語(yǔ)法-2

    LinuxMakefile
    水管工
    發(fā)布于 :2022年11月10日 17:20:08

    #硬聲創(chuàng)作季 #Linux 學(xué)Linux-1.17 Makefile基本語(yǔ)法-3

    LinuxMakefile
    水管工
    發(fā)布于 :2022年11月10日 17:20:31

    #硬聲創(chuàng)作季 #Linux 學(xué)Linux-3.05.2 Makefile前期所作的內(nèi)容-1

    LinuxMakefile
    水管工
    發(fā)布于 :2022年11月10日 19:08:02

    #硬聲創(chuàng)作季 #Linux 學(xué)Linux-3.05.2 Makefile前期所作的內(nèi)容-2

    LinuxMakefile
    水管工
    發(fā)布于 :2022年11月10日 19:08:32

    #硬聲創(chuàng)作季 #Linux 學(xué)Linux-3.05.2 Makefile前期所作的內(nèi)容-3

    LinuxMakefile
    水管工
    發(fā)布于 :2022年11月10日 19:09:01

    基于Linux 2.6內(nèi)核Makefile分析

    由于Linux的獨(dú)特優(yōu)勢(shì),使越來(lái)越多的企業(yè)和科研機(jī)構(gòu)把目光轉(zhuǎn)向Linux的開發(fā)和研究上。目前Linux最新的穩(wěn)定內(nèi)核版本為2.6.17,但是當(dāng)今絕大部分對(duì)于Linux
    發(fā)表于 09-18 19:09 ?0次下載
    基于<b class='flag-5'>Linux</b> 2.6內(nèi)核<b class='flag-5'>Makefile</b>分析

    關(guān)于Linux 2.6內(nèi)核Makefile的分析

    [摘要] 由于Linux的獨(dú)特優(yōu)勢(shì),使越來(lái)越多的企業(yè)和科研機(jī)構(gòu)把目光轉(zhuǎn)向Linux的開發(fā)和研究上。目前Linux最新的穩(wěn)定內(nèi)核版本為2.6.17,但是當(dāng)今絕大部分對(duì)于Linux
    發(fā)表于 11-02 10:12 ?1次下載

    linux makefile教程

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

    Linux最新2.6內(nèi)核的Makefile體系詳細(xì)資料分析

    由于Linux的獨(dú)特優(yōu)勢(shì),使越來(lái)越多的企業(yè)和科研機(jī)構(gòu)把目光轉(zhuǎn)向Linux的開發(fā)和研究上。目前Linux最新的穩(wěn)定內(nèi)核版本為2.6.17,但是當(dāng)今絕大部分對(duì)于Linux
    發(fā)表于 09-06 08:00 ?0次下載

    虛擬機(jī):LinuxMakefile使用for編譯多個(gè)目標(biāo)文件

    假如,有很多文件,每個(gè)文件都要變成一個(gè)單獨(dú)的目標(biāo)文件,如果使用makefile的話,最好能用一個(gè) for 循環(huán)來(lái)做。
    的頭像 發(fā)表于 06-22 17:40 ?5035次閱讀
    虛擬機(jī):<b class='flag-5'>Linux</b>的<b class='flag-5'>Makefile</b>使用for編譯多個(gè)目標(biāo)文件

    Makefile】簡(jiǎn)單實(shí)用的Makefile模板來(lái)了

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

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品