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

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

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

3天內不再提示

【Makefile】簡單介紹

_light ? 來源:_light ? 作者:_light ? 2022-11-18 10:22 ? 次閱讀

基本規則

makefile的規則,一般由以下組成

目標: 依賴列表
	命令列表

1、其中第一條規則中的”目標“,將會成為終極目標。我們最終目的,就是為了生成這個目標的

2、每一個規則中的目標。都可以是一個文件,也可以是一個標簽

3、每一個規則中的目標,不一定要有依賴

目標:
	命令列表

此時的目標,我們成為”偽目標“

4、每一個規則,也不一定有命令列表

案例

假設我們有三個.c源文件,main.c、f1.c、f2.c

f1.c

#include "stdio.h"

void f1()

{

printf("This is f1
);

}

f2.c

#include "stdio.h"

void f2()

{

printf("This is f2
);

}

然后我們在main里面調用f1與f2這兩個函數,接著編譯、運行即可

下面我們編寫一下Makefile

target:main.c f1.c f2.c
	gcc f1.c f2.c main.c

輸入命令 make 即可完成編譯

如果不想打印出gcc f1.c f2.c main.c這條命令,可以在Makefile文件中的命令列表前加上一個@符號

變量

創建變量,與shell類似

number = '56',此時,變量number的值就是56,

可以使用echo驗證: echo &$number

其中這個符號$就是使用已聲明的變量

變量的三種賦值方式

第一種:'=' 稱為”延時展開賦值“
	例如:
		temp = $number
		number = '56'
	此時你輸出'temp'等于56,所謂延時展開賦值就是當number成功賦值之后,再把number的值賦給temp
第二種:':='稱為”立即展開賦值“
    例如:
		temp := $number
		number = '56'
	此時你輸出'temp'就為空
第三種:'?='稱為條件賦值
	例如:
		temp ?= $number
	假如在這之前沒有給變量temp賦過值,那么就會把number的值賦給temp,反之就不會把number的值賦給temp

特殊變量

$@: 當前規則中的目標

$^: 當前規則中的所有依賴

$<: 當前依賴中的第一個

$$: 當前執行的進程的進程編號

$*: 模式規則中的所有%匹配的部分

$?: 模式規則中所有比所在規則中的目標更 新的文件組成的列表

下面借助變量優化一下上述案例的Makefile

SOURCE=main.c f1.c f2.c
target:$(SOURCE)
	gcc $^

模式規則

%.o: %.c
	gcc -c $<

%.c會匹配.c文件前面的部分,相當于shell中的*.c

模式規則執行時,是一個循環取出的過程,每次取出一個.c,調用命令生成對應的.o

模式規則舉例

#strat
TARGET = a.out
SRCS = main.c

$(TARGET): $(SRCS:.c = .o)
	gcc $^ -o $@
#$(SRCS:.c=.o) 可以理解為目標所依賴文件是由.c文件生成的.o文件

#模式規則
%.o: %.c
	gcc -c $<   #模式規則每次取出一個,所以這里用$<

#end

寫Makefile系列的文章是做個筆記,為了以后方便復習,里面應該有許多BUG,等學一段時間后會繼續完善

審核編輯:湯梓紅

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

    關注

    1

    文章

    125

    瀏覽量

    19185
收藏 人收藏

    評論

    相關推薦

    linux系統中Makefile的使用方法

    的基礎用法講起,逐步深入到更高級的應用,為你呈現一個全面而詳細的Makefile使用手冊。 第一:Makefile的基本結構 一個最簡單Makefile包含規則,規則由目標(targ
    的頭像 發表于 05-11 08:49 ?677次閱讀

    關于Makefile自動生成-autotools的使用

    Makefile并非日常任務,但遇見需要構建大型軟件項目時,利用工具自動生成Makefile就顯得尤為關鍵。接下來,我們將重點介紹一款自動化構建工具——Autoto
    的頭像 發表于 07-25 15:50 ?1509次閱讀
    關于<b class='flag-5'>Makefile</b>自動生成-autotools的使用

    怎樣去使用Makefile+VCS+Verdi做個簡單的Test Bench?

    怎樣去使用Makefile+VCS+Verdi做個簡單的Test Bench?有哪些操作步驟?
    發表于 06-18 06:28

    駕馭Makefile

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

    關于Linux 2.6內核Makefile的分析

    介紹文章都是基于2.4內核的,可以說關于2.6內核Makefile相關的文章鳳毛麟角,筆者抽時間完成了這篇分析文章,讓讀者迅速熟悉Linux最新Makefile體系,從而加深對內核的理解,同時也希望能
    發表于 11-02 10:12 ?1次下載

    linux makefile教程

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

    makefile的基本語法

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

    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>經典教程免費下載

    Linux關于Makefile的用法介紹

    Make可以從一個名為Makefile的文件中獲得如何構建程序的知識,該文件列出了每個非源文件以及如何從其他文件計算它。當你編寫一個程序時,你應該為它編寫一個Makefile文件,這樣就可以使用Make來編譯和安裝這個程序。
    發表于 12-24 10:36 ?1891次閱讀

    Makefile的項目模板免費下載

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

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

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

    芯片設計中的Makefile簡單教程

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

    嵌入式中的Makefile應用

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

    Makefile簡單實用的Makefile模板來了

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

    Makefile】函數介紹

    Makefile 中調用函數的方法跟變量的使用類似,以“**()”或“**{}”符號包含函數。
    的頭像 發表于 11-18 10:23 ?980次閱讀
    主站蜘蛛池模板: 翘臀白浆| 免费在线看视频| 伊人狼人综合| 夜夜摸视频网| 性夜黄a爽爽免费视频国产| 在线色片| 色资源网| 香焦视频在线观看黄| 一卡二卡卡四卡无人区中文| 亚洲综合婷婷| 亚洲欧美一区二区三区在线播放| 欧美系列在线观看| 22eee在线播放成人免费视频| 免费久久精品国产片香蕉| 最色成人网| 四虎永久在线精品国产免费 | 亚洲成a人伦理| 午夜精品视频在线看| 色网综合| 1024手机看片日韩| 国产在线操| 欧美tube最新的69hd| 男女交性视频免费视频| 亚洲h视频在线| 欧美videos 另类| 成人免费观看一区二区| 天天操夜夜草| 欧美xxxx性高清| 中文字幕1页| 欧美一级视频免费看| 国产98色在线| 美女被免费网站91色| 中文字幕区| 天天综合射| 国产在线观看网址你懂得| 天天草夜夜骑| 4438x色| 午夜三级视频| 国内精品久久久久影| 人人操天天射| 日韩高清成人毛片不卡|