吴忠躺衫网络科技有限公司

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

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

3天內不再提示

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

嵌入式物聯網開發 ? 來源:嵌入式物聯網開發 ? 作者:嵌入式物聯網開發 ? 2022-08-31 12:46 ? 次閱讀

今天給大家介紹一個簡單實用的Makefile模板,也可以當做學習Makefile核心內容的范例,里面都有詳細的注釋,清晰明了。

這個Makefile主要解決以下需求:

###################################################################################### # 需求: #1.編譯輸出的所有文件均放在一個output目錄,.o文件的相對目錄應與源碼的位置保持一致; #2.需要生成每個.c文件的頭文件依賴,當.c文件為xxxx.c時,.o文件名為xxx.o,頭文件依賴文件名為.xxx.o.d ######################################################################################

廢話不多說,直接上內容:

#######################################################################################################
# 需求:
#1.編譯輸出的所有文件均放在一個output目錄,.o文件的相對目錄應與源碼的位置保持一致;
#2.需要生成每個.c文件的頭文件依賴,當.c文件未xxxx.c時,.o文件名為xxx.o,頭文件依賴文件名為.xxx.o.d 
#######################################################################################################

# 定義輸出目錄
OUTPUT		:= output
OUTPUT_BIN	:= $(OUTPUT)/test

# 定義.c文件列表
SRC-C		+= ./src/main.c 
SRC-C		+= ./src/test1/test1.c 
SRC-C		+= ./src/test2/test2.c 
SRC-C		+= ./src/test3/test3.c 

# 求出.o文件列表 
SRC-O		+= $(patsubst %.c, $(OUTPUT)/%.o, $(SRC-C))

# 求出.o文件的頭文件依賴列表  # output/./src/test1/test1.o ==> output/./src/test1/.test1.o.d
SRC-O-DEPS	+= $(foreach n, $(SRC-O), $(dir $(n)).$(notdir $(n).d))

# Entry for Makefile
all: info gen_output gen_bin 
	@echo 
	@echo Generate $(OUTPUT_BIN) done !
	@echo 

# Show some variables	
info:
	@echo 
	@echo SRC-C=$(SRC-C)
	@echo SRC-O=$(SRC-O)
	@echo SRC-O-DEPS=$(SRC-O-DEPS)
	@echo 

# Generate output bin
gen_bin: $(SRC-O) $(SRC-O-DEPS)
	touch $(OUTPUT_BIN)

# Create .o files	
$(OUTPUT)/%.o:
	test -d $(dir $@) || mkdir -p $(dir $@)
	touch $@
	
# Create .o dependent files
$(OUTPUT)/.%.o.d: 
	touch $@

# Create output path when it's not exist !	
gen_output:
	test -d $(OUTPUT) || mkdir -p $(OUTPUT)

# Clean builded output files	
clean:
	rm -rf $(OUTPUT)
	
.PHONY: info gen_output clean

工程的文件目錄結構如下圖:

img點擊并拖拽以移動

編輯

工程目錄執行make即可開始編譯,執行make clean即可清除編譯文件。

img點擊并拖拽以移動

編輯

值得注意的是,Makefile里面都是模擬生成.o .o.d .bin等文件,在實際工程運用中,需要根據自己的實際情況加以修改。

使用過程如有發現問題,可在評論席提出,期待您的寶貴建議,謝謝。


延伸閱讀:

1.【Linux + Makefile】十分鐘教你學會Makefile的FORCE

\2. 【Linux + Makefile】Makefile的高階用法:解決C文件包含的頭文件修改了,但C文件不重新編譯的問題

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

    關注

    0

    文章

    108

    瀏覽量

    20606
  • Makefile
    +關注

    關注

    1

    文章

    125

    瀏覽量

    19217
收藏 人收藏

    評論

    相關推薦

    Makefile中文教程 -下載

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

    駕馭Makefile

    駕馭Makefile在網上你能找到很多關于Makefile的學習資料,但絕大部分給你的只是一個知識點,與將Makefile運用到項目中(尤其是大型項目)的差距非常的大。因為,將Makefile
    發表于 01-05 17:05 ?9次下載

    跟我一起學makefile

    關于makefile學習,深入了解嵌入式下makefile的編寫
    發表于 05-23 18:21 ?0次下載

    linux makefile教程

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

    makefile的基本語法

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

    Makefile是什么?Makefile工作原理是怎樣的?Makefile經典教程免費下載

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

    Makefile的項目模板免費下載

    本文檔的主要內容詳細介紹的是Makefile的項目模板免費下載 可根據項目名稱修改。
    發表于 06-12 08:00 ?11次下載
    <b class='flag-5'>Makefile</b>的項目<b class='flag-5'>模板</b>免費下載

    Linux內核的Makefile、Kconfig和.config文件

    問題都和Makefile、Kconfig、.config有關,下面簡單談談Makefile、Kconfig和.config。希望對你有啟發。 三者的作用: 簡單來說就是去飯店點菜:Kc
    的頭像 發表于 11-12 17:31 ?3104次閱讀

    芯片設計中的Makefile簡單教程

    Makefile可以根據指定的依賴規則和文件是否有修改來執行命令。常用來編譯軟件源代碼,只需要重新編譯修改過的文件,使得編譯速度大大加快。
    的頭像 發表于 12-24 17:41 ?988次閱讀

    嵌入式中的Makefile應用

    文章目錄一.Makefile 引入二. Makefile語法1.通配符2.假象目標3.變量三.Makefile函數四.實例本文主要總結一下嵌入式開發中的Makefile,一般項目中都需
    發表于 11-03 17:06 ?11次下載
    嵌入式中的<b class='flag-5'>Makefile</b>應用

    一個STM32編譯Makefile模板

    一個STM32編譯Makefile模板
    發表于 11-13 20:06 ?10次下載
    一個STM32編譯<b class='flag-5'>Makefile</b><b class='flag-5'>模板</b>

    MakefileMakefile與shell命令的聯系

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

    Makefile】通用模板

    對于上述這樣的多.c文件,又不在同一個目錄下的大型工程中,借助makefile可以來減輕工作任務
    的頭像 發表于 04-15 12:47 ?531次閱讀
    【<b class='flag-5'>Makefile</b>】通用<b class='flag-5'>模板</b>

    三個Makefile模板分享

    ????本文分享三個Makefile模板:編譯可執行程序、編譯靜態庫、編譯動態庫。 1 寫在前面 ????對于Windows下開發,很多IDE都集成了編譯器,如Visual Studio,提供了
    的頭像 發表于 07-10 09:07 ?1084次閱讀
    三個<b class='flag-5'>Makefile</b><b class='flag-5'>模板</b>分享

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

    Makefile可以根據指定的依賴規則和文件是否有修改來執行命令。常用來編譯軟件源代碼,只需要重新編譯修改過的文件,使得編譯速度大大加快。
    的頭像 發表于 01-25 11:18 ?776次閱讀
    肯博百家乐游戏| 大发888的概述| 百家乐官网论坛百科| 百家乐靠什么赢| 香港六合彩网址大全| 百家乐官网平台送彩金| 新全讯网3344111| 百家乐官网游戏教程| 澳门玩百家乐00| 百家乐官网赌博机玩法| 茅台百家乐的玩法技巧和规则| 百家乐官网娱乐皇冠世界杯 | 百家乐官网黏土筹码| 娱网棋牌| 博E百百家乐现金网| 顶尖娱乐| 里尼的百家乐策略| 百家乐官网娱乐城代理| 百家乐破解仪| 百家乐官网顶| 沙龙百家乐代理| 百家乐官网必胜赌| tt娱乐城clega| 百家乐路单破解器| 金榜百家乐官网现金网| V博百家乐的玩法技巧和规则| 自贡百家乐官网赌场| 皇冠现金网导航| 百家乐玩法及细则| 百家乐官网心得分享| 百家乐园好又多| 百家乐官网手论坛48491| 铜山县| 发中发百家乐的玩法技巧和规则| 百家乐官网乐翻天| 海王星国际娱乐| 百家乐搏牌| 百家乐官网双龙出海| 博彩e族| 威尼斯人娱乐城信誉lm0| 不夜城百家乐官网的玩法技巧和规则 |