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

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

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

3天內不再提示

linux系統(tǒng)中Makefile的使用方法

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

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

第一:Makefile的基本結構

一個最簡單的Makefile包含規(guī)則,規(guī)則由目標(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

第三:通用規(guī)則和模式匹配

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

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

$

第四:自動化變量

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

$@表示規(guī)則中的目標文件名;

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

$

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

第五:函數(shù)的使用

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

例如,獲取源文件列表:

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

第六:控制Make的行為

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

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

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

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

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

Makefile也支持條件判斷,這在不同環(huán)境需要執(zhí)行不同命令時非常有用。

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

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

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

# 在子Makefile中include config.mk

第九:自定義函數(shù)

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

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

第十:處理多目標

定義一個規(guī)則來批量處理多個文件。

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

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

審核編輯 黃宇

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

    關注

    87

    文章

    11304

    瀏覽量

    209458
  • Makefile
    +關注

    關注

    1

    文章

    125

    瀏覽量

    19182
收藏 人收藏

    評論

    相關推薦

    Linux系統(tǒng)Makefile使用方法

    今天主要和大家聊一聊,Linux系統(tǒng)Makefile使用方法
    發(fā)表于 11-17 09:35 ?4173次閱讀

    linux系統(tǒng)中常見注冊函數(shù)的使用方法

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

    Makefile簡介和使用方法

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

    Makefile for VCS 視頻講解

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

    Linux使用小技巧:嵌入式Linux系統(tǒng)實現(xiàn)截屏功能的方法和步驟

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

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

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

    基于Linux 2.6內核Makefile分析

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

    關于Linux 2.6內核Makefile的分析

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

    Embeded linux之buildroot的使用方法

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

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

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

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

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

    嵌入式LinuxMakefile萬能寫法

    《嵌入式LinuxMakefile萬能寫法》SRC := ${wildcard *.c}OBJ := ${patsubst %.c, %.o, $(SRC)}CC
    發(fā)表于 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模板來了
    的頭像 發(fā)表于 08-31 12:46 ?1906次閱讀
    【<b class='flag-5'>Makefile</b>】簡單實用的<b class='flag-5'>Makefile</b>模板來了

    AN033 基于Linux環(huán)境下的Makefile工程管理

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

    Linux用途和基本使用方法

    廣泛應用的操作系統(tǒng)。本文將詳細介紹Linux的用途和基本使用方法。 首先,讓我們來了解一下Linux的用途。Linux具有廣泛的應用領域,包
    的頭像 發(fā)表于 11-23 11:13 ?1271次閱讀
    主站蜘蛛池模板: 在线中文字幕一区| 一级做a爰片久久毛片图片| 奇米四色7777| 奇米网在线观看| 丝袜美腿视频一区二区三区| 最新地址四虎www4hutv| 无人区理论片手机看片| 欧美午夜影视| 丁香婷婷网| 天天干天天谢| 国产亚洲高清视频| 亚洲视频在线不卡| 亚洲一区二区三区高清视频| 四虎影像| 国产三级三级三级| 天天做爽夜夜做爽| 五月婷婷六月丁香在线| 久久久久久免费播放一级毛片| 婷婷亚洲综合一区二区| 国产成在线观看免费视频| se综合| 最色成人网| 国模福利| 日日插夜夜爽| 一区不卡| 欧美日韩在线成人看片a| 色成人综合网| 在线资源天堂| 毛片在线播| 天天爽天天爱| 国产精品久久久久久久久齐齐| 日本黄色免费电影| 一区免费| 欧美 激情 在线| 亚洲a级毛片| 国产一级大片在线观看| 五月激情在线| 你懂的在线观看网址| 思思久久好好热精品国产| 亚洲男人的性天堂| 久久精品五月天|