<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux Makefile的基本使用

CHANBAEK ? 來源:嵌入式工程師成長日記 ? 作者:嵌入式工程師成長 ? 2023-01-12 17:49 ? 次閱讀

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

01 make工具和makefile的引入

當源碼文件比較多的時候不適合通過直接輸入gcc來編譯,需要一個自動化編譯的工具

make工具的工作包括:

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

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

make工具主要用于完成自動化編譯,make編譯時需要makefile文件提供編譯文件

02 Vim編輯器操作Makefile

配置Vim編輯器

sudo vi /etc/vim/vimrc

set ts=4——設置Tab鍵為4個字節

set nu——每行的開頭顯示行號

(在最下面添加上面兩個語句)

圖片

使用步驟

(1)六 制作文件

②編輯以下代碼:

規則格式:

目標... :依賴文件集合...

命令1

命令2

....

圖片

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

③輸入指令make

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

圖片

03Makefile基本語法

makefile變量的使用

objects = main.o input.o calcu.o

主:$(對象)

GCC -o main $(對象)

圖片

賦值“=”

名稱 = 管理員1

當前 =$(名稱)

名稱 = 管理員

打?。?/p>

@echo 當前:$(當前)

這里打印的值時admin,而不是admin1,因為打印的是最終變量的值

圖片

圖片

賦值“:=”

名稱 = 管理員1

當前 :=$(名稱)

名稱 = 管理員

打?。?/p>

@echo 當前:$(當前)

這里打印的值時admin1,而不是admin。 這就是和“=”的區別

圖片

圖片

賦值“? =”

當前 ?=你好

打?。?/p>

@echo 當前:$(當前)

//這里打印hello

當前:=管理員

當前?=你好

打?。?/p>

@echo 當前:$(當前)

//這里打印的值時admin1,而不是admin。 這就是和“=”的區別

圖片

圖片

自動化變量

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

最常用的三個變量:@,<,$^

功能表:

圖片

圖片

圖片

偽目標

偽目標不代表真正的目標名,一般的目標名都是要生成文件,而偽目標不代表真正的目標名,在執行make命令時通過指定這個偽目標來執行其所在規則定義的命令

如果在工作目錄下有相同的文件時,需要聲明偽目標,例如. PHONY:XXX

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11017

    瀏覽量

    206957
  • VIM
    VIM
    +關注

    關注

    0

    文章

    129

    瀏覽量

    15204
  • 編譯
    +關注

    關注

    0

    文章

    624

    瀏覽量

    32449
  • 編輯器
    +關注

    關注

    1

    文章

    792

    瀏覽量

    30448
  • Makefile
    +關注

    關注

    1

    文章

    124

    瀏覽量

    19107
收藏 人收藏

    評論

    相關推薦

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

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

    Linux Makefile通用模板詳解

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

    #硬聲創作季 #LinuxLinux-1.16 make工具和Makefile的引入-1

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

    #硬聲創作季 #LinuxLinux-1.17 Makefile基本語法-1

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

    #硬聲創作季 #LinuxLinux-1.17 Makefile基本語法-2

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

    #硬聲創作季 #LinuxLinux-1.17 Makefile基本語法-3

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

    #硬聲創作季 #LinuxLinux-3.05.2 Makefile前期所作的內容-1

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

    #硬聲創作季 #LinuxLinux-3.05.2 Makefile前期所作的內容-2

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

    如何解決嵌入式Linux Makefile遇到的問題

    arm-linux-ld -Ttext 0 -Tdata 0xee0此處 -Tdata 0xee0是將數據段開始存放地址指定在0xee0,因為程序編譯出來數據段和代碼段中間有空余部分,導致最終的bin文件很大,燒寫要很長時間。使用這個要注意指定的存放地址,防止數據段將代碼段覆蓋...
    發表于 12-24 06:26

    基于Linux 2.6內核Makefile分析

    由于Linux的獨特優勢,使越來越多的企業和科研機構把目光轉向Linux的開發和研究上。目前Linux最新的穩定內核版本為2.6.17,但是當今絕大部分對于Linux
    發表于 09-18 19:09 ?0次下載
    基于<b class='flag-5'>Linux</b> 2.6內核<b class='flag-5'>Makefile</b>分析

    關于Linux 2.6內核Makefile的分析

    [摘要] 由于Linux的獨特優勢,使越來越多的企業和科研機構把目光轉向Linux的開發和研究上。目前Linux最新的穩定內核版本為2.6.17,但是當今絕大部分對于Linux
    發表于 11-02 10:12 ?1次下載

    linux makefile教程

     什么是makefile?或許很多Winodws的程序員都不知道這個東西,因為那些Windows的IDE都為你做了這個工作,但我覺得要作一個好的和professional的程序員,makefile
    發表于 11-12 09:11 ?4991次閱讀

    Linux最新2.6內核的Makefile體系詳細資料分析

    由于Linux的獨特優勢,使越來越多的企業和科研機構把目光轉向Linux的開發和研究上。目前Linux最新的穩定內核版本為2.6.17,但是當今絕大部分對于Linux
    發表于 09-06 08:00 ?0次下載

    虛擬機:LinuxMakefile使用for編譯多個目標文件

    假如,有很多文件,每個文件都要變成一個單獨的目標文件,如果使用makefile的話,最好能用一個 for 循環來做。
    的頭像 發表于 06-22 17:40 ?4214次閱讀
    虛擬機:<b class='flag-5'>Linux</b>的<b class='flag-5'>Makefile</b>使用for編譯多個目標文件

    Makefile】簡單實用的Makefile模板來了

    Linux + Makefile】簡單實用的Makefile模板來了
    的頭像 發表于 08-31 12:46 ?1673次閱讀
    【<b class='flag-5'>Makefile</b>】簡單實用的<b class='flag-5'>Makefile</b>模板來了
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>