色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

linux系統中Makefile的使用方法

嵌入式開發星球 ? 來源:嵌入式開發愛好者 ? 作者:嵌入式開發愛好者 ? 2024-05-11 08:49 ? 次閱讀

Makefile是一種編譯控制文件,廣泛用于項目的自動化構建。它定義了一系列的規則來指導構建的過程。通過Makefile,開發者可以輕松管理大型項目的編譯鏈接、清理等任務。本文將從Makefile的基礎用法講起,逐步深入到更高級的應用,為你呈現一個全面而詳細的Makefile使用手冊。

第一:Makefile的基本結構

一個最簡單的Makefile包含規則,規則由目標(target)、依賴(dependencies)和命令(commands)三部分組成:

target: dependencies    commands

命令前的Tab鍵是必須的。下面是一個簡單的示例:

hello: hello.c    gcc -o hello hello.c

第二:變量的使用

在Makefile中聲明變量可以使得我們的代碼更加簡潔。

CC=gccCFLAGS=-std=c99LDFLAGS=OBJ=main.o utils.oapp: $(OBJ)    $(CC) -o app $(OBJ) $(LDFLAGS)main.o: main.c    $(CC) $(CFLAGS) -c main.cutils.o: utils.c utils.h    $(CC) $(CFLAGS) -c utils.c

第三:通用規則和模式匹配

模式規則可以減少我們重復相同命令的工作量。

%.o: %.c    $(CC) $(CFLAGS) -c $<

$

第四:自動化變量

Makefile提供了一系列自動化變量,它們在規則的命令中非常有用:

$@表示規則中的目標文件名;

$^表示所有的依賴文件列表;

$

$?表示所有比目標新的依賴文件列表。

第五:函數的使用

Makefile中內置了許多函數,用以執行字符串操作、文件操作等。

例如,獲取源文件列表:

SRC=$(wildcard *.c)OBJ=$(patsubst %.c,%.o,$(SRC))

第六:控制Make的行為

make -B強制重新編譯所有目標;

make -n顯示將要執行的命令而不實際執行;

make -f 指定使用其他名稱的Makefile文件;

make -j允許并行執行(多核編譯)。

第七:高級用法 - 條件判斷

Makefile也支持條件判斷,這在不同環境需要執行不同命令時非常有用。

ifeq ($(OS),Windows_NT)    RM=del /Qelse    RM=rm -fendifclean:    $(RM) *.o

第八:使用變量和文件包含來組織Makefile

對于大型項目,組織多個Makefile是一種好方法。

# 在子Makefile中include config.mk

第九:自定義函數

通過定義可以重用的函數,你可以使你的Makefile變得更加強大和靈活。

define run-cc$(CC) $(CFLAGS) -o $@ $^endefapp: $(OBJ)    $(call run-cc)

第十:處理多目標

定義一個規則來批量處理多個文件。

FILES := file1 file2 file3all: $(FILES)$(FILES):    touch $@

第十一:偽目標的使用

偽目標不代表實際的文件,它只是一個動作的名稱。

.PHONY: cleanclean:    rm -f *.o app

第十二:調試Makefile

你可以使用make --debug或添加注釋來幫助調試Makefile。

app: main.o utils.o    # 這是一個鏈接的命令    $(CC) -o app main.o utils.o

結語

Makefile是構建自動化的強大工具,既可以簡化小型項目的構建流程,也能夠靈活管理大型應用程序的復雜構建系統。通過本文的詳細論述和豐富示例,您應該能夠基本掌握Makefile的各項技能,并在實際項目中加以應用。

希望以上內容對你深入理解和使用Makefile有所幫助。記住,“實踐出真知”——編寫你自己的Makefile并嘗試使用這些特性是最好的學習方式。

審核編輯 黃宇

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

    關注

    87

    文章

    11313

    瀏覽量

    209741
  • Makefile
    +關注

    關注

    1

    文章

    125

    瀏覽量

    19189
收藏 人收藏

    評論

    相關推薦

    Linux系統Makefile使用方法

    今天主要和大家聊一聊,Linux系統Makefile使用方法
    發表于 11-17 09:35 ?4179次閱讀

    linux系統中常見注冊函數的使用方法

    大家好,今天給大家分享一下,linux系統中常見的注冊函數register_chrdev_region()、register_chrdev()、 alloc_chrdev_region()的使用方法。
    發表于 10-19 09:28 ?626次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>系統</b>中常見注冊函數的<b class='flag-5'>使用方法</b>

    Makefile簡介和使用方法

    Makefile是和make工具一起配合使用的,用于組織管理項目源代碼的編譯和鏈接。
    的頭像 發表于 12-26 12:24 ?1771次閱讀

    Makefile for VCS 視頻講解

    ASIC/SoC芯片設計驗證中常常使用Makefile來管理驗證環境,運行驗證案例。本視頻借用網絡上的一篇Makefile(Synopsys VCS)文件,簡要介紹了Makefile的基本語法和
    發表于 10-03 19:01

    Linux使用小技巧:嵌入式Linux系統實現截屏功能的方法和步驟

    在桌面級操作系統,下載一個截圖軟件就能實現截屏操作,但在嵌入式Linux系統,要實現小小的截圖功能卻沒有那么簡單。本文為您介紹嵌入式
    發表于 05-03 07:00

    簡單分析linux內核的結構體使用方法

    結構體的使用并不熟練,導致在linux開發中一頭霧水。下面簡單分析結構體的使用方法。1:結構體的定義struct 結構體名{ 成員列表; } 變量名列表;注意這里的變量名可以直接跟在后面也可以單獨定義struct 結構體名 變量名 ;舉例: ...
    發表于 01-19 08: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次下載

    Embeded linux之buildroot的使用方法

    Embeded linux之buildroot使用方法
    發表于 05-15 14:10 ?3312次閱讀
    Embeded <b class='flag-5'>linux</b>之buildroot的<b class='flag-5'>使用方法</b>

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

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

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

    Linux內核源碼文件繁多,搞不清Makefile、Kconfig、.config間的關系,不了解內核編譯體系,編譯修改內核有問題無從下手,自己寫的驅動不知道怎么編進內核,不知道怎么配置內核,這些
    的頭像 發表于 11-12 17:31 ?3064次閱讀

    嵌入式LinuxMakefile萬能寫法

    《嵌入式LinuxMakefile萬能寫法》SRC := ${wildcard *.c}OBJ := ${patsubst %.c, %.o, $(SRC)}CC
    發表于 11-01 17:06 ?2次下載
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>中</b><b class='flag-5'>Makefile</b>萬能寫法

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

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

    AN033 基于Linux環境下的Makefile工程管理

    AN033 基于Linux環境下的Makefile工程管理
    發表于 02-23 19:08 ?0次下載
    AN033 基于<b class='flag-5'>Linux</b>環境下的<b class='flag-5'>Makefile</b>工程管理

    Linux用途和基本使用方法

    廣泛應用的操作系統。本文將詳細介紹Linux的用途和基本使用方法。 首先,讓我們來了解一下Linux的用途。Linux具有廣泛的應用領域,包
    的頭像 發表于 11-23 11:13 ?1302次閱讀
    主站蜘蛛池模板: 99视频这里只有精品| 99久久伊人一区二区yy5o99| 两个洞一起插哦!好刺激| 美国一级大黄一片免费的网站| 呜呜别塞了啊抽插| 大桥未久电影在线观看| 男污女XO猛烈的动态图| 97碰成视频免费| 国产精品视频大全| 久久久久久久久人体| 欧美性猛交XXXX乱大交极品 | ping色堂| 国精产品一区一区三区有| 快播电影网址| 污文啊好棒棒啊好了| 国产36d在线观看| 久久无码人妻AV精品一区 | 久久精品久久久久| 2020精品极品国产色在线| 蜜臀AV熟女人妻中文字幕| 777琪琪午夜理论电影网| 免费在线视频a| 一本道亚洲区免费观看| 久久www免费人成_看片高清| 诱受H嗯啊巨肉舍友1V1| 免费看 a一级毛片| beeg日本高清xxxx| 久久成人国产精品一区二区 | 玩高中女同桌肉色短丝袜脚文| 国产成人自拍视频在线观看| 亚洲国产精品综合久久一线| 成人欧美尽粗二区三区AV| 射死你天天日| 成人在线视频在线观看| 午夜视频体内射.COM.COM| 混乱家庭电影完整版在线看| 先锋影音av无码第1页| 久久99AV无色码人妻蜜柚| 2021久久最新国产精品| 日韩一级精品久久久久| xxx免费观看|