欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

全面而詳細(xì)的Makefile使用手冊(cè)

Linux愛(ài)好者 ? 來(lái)源:Linux愛(ài)好者 ? 2024-01-24 12:35 ? 次閱讀

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

Makefile的基本結(jié)構(gòu)

一個(gè)最簡(jiǎn)單的Makefile包含規(guī)則,規(guī)則由目標(biāo)(target)、依賴(dependencies)和命令(commands)三部分組成:

target: dependencies
    commands

命令前的Tab鍵是必須的。下面是一個(gè)簡(jiǎn)單的示例:

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

變量的使用

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

CC=gcc
CFLAGS=-std=c99
LDFLAGS=
OBJ=main.o utils.o

app: $(OBJ)
    $(CC) -o app $(OBJ) $(LDFLAGS)

main.o: main.c
    $(CC) $(CFLAGS) -c main.c

utils.o: utils.c utils.h
    $(CC) $(CFLAGS) -c utils.c

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

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

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

$

自動(dòng)化變量

Makefile提供了一系列自動(dòng)化變量,它們?cè)谝?guī)則的命令中非常有用:

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

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

$

$?表示所有比目標(biāo)新的依賴文件列表。

函數(shù)的使用

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

例如,獲取源文件列表:

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

控制Make的行為

make -B強(qiáng)制重新編譯所有目標(biāo);

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

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

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

高級(jí)用法 - 條件判斷

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

ifeq ($(OS),Windows_NT)
    RM=del /Q
else
    RM=rm -f
endif

clean:
    $(RM) *.o

使用變量和文件包含來(lái)組織Makefile

對(duì)于大型項(xiàng)目,組織多個(gè)Makefile是一種好方法。

# 在子Makefile中
include config.mk

自定義函數(shù)

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

define run-cc
$(CC) $(CFLAGS) -o $@ $^
endef

app: $(OBJ)
    $(call run-cc)

處理多目標(biāo)

定義一個(gè)規(guī)則來(lái)批量處理多個(gè)文件。

FILES := file1 file2 file3

all: $(FILES)

$(FILES):
    touch $@

偽目標(biāo)的使用

偽目標(biāo)不代表實(shí)際的文件,它只是一個(gè)動(dòng)作的名稱。

.PHONY: clean

clean:
    rm -f *.o app

調(diào)試Makefile

你可以使用make --debug或添加注釋來(lái)幫助調(diào)試Makefile。

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

結(jié)語(yǔ)

Makefile是構(gòu)建自動(dòng)化的強(qiáng)大工具,既可以簡(jiǎn)化小型項(xiàng)目的構(gòu)建流程,也能夠靈活管理大型應(yīng)用程序的復(fù)雜構(gòu)建系統(tǒng)。通過(guò)本文的詳細(xì)論述和豐富示例,您應(yīng)該能夠基本掌握Makefile的各項(xiàng)技能,并在實(shí)際項(xiàng)目中加以應(yīng)用。

希望以上內(nèi)容對(duì)你深入理解和使用Makefile有所幫助。記住,“實(shí)踐出真知”——編寫(xiě)你自己的Makefile并嘗試使用這些特性是最好的學(xué)習(xí)方式。

審核編輯:發(fā)貨

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4823

    瀏覽量

    68995
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    613

    瀏覽量

    28460
  • Makefile
    +關(guān)注

    關(guān)注

    1

    文章

    125

    瀏覽量

    19207

原文標(biāo)題:深入淺出 Makefile:從基礎(chǔ)到高級(jí)應(yīng)用

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    的基礎(chǔ)用法講起,逐步深入到更高級(jí)的應(yīng)用,為你呈現(xiàn)一個(gè)全面詳細(xì)Makefile使用手冊(cè)。 第一:Mak
    的頭像 發(fā)表于 05-11 08:49 ?738次閱讀

    freebsd使用手冊(cè)pdf

    freebsd使用手冊(cè)pdfThe FreeBSD Documentation Project FreeBSD 中文計(jì)劃,為PDF文檔格式。FREEBSD使用手冊(cè)分成了三個(gè)邏輯清晰的部分。第一部
    發(fā)表于 10-21 17:22

    EMC分析使用手冊(cè)

    EMC分析使用手冊(cè) [/hide]
    發(fā)表于 10-10 16:33

    USB設(shè)計(jì)及使用手冊(cè)

    USB設(shè)計(jì)及使用手冊(cè)  [hide]USB使用手冊(cè).rar[/hide][此貼子已經(jīng)被作者于2009-11-19 11:52:30編輯過(guò)]
    發(fā)表于 11-19 11:51

    DAvE_使用手冊(cè)_8 bit

    DAvE_使用手冊(cè)_8 bit
    發(fā)表于 08-20 09:13

    fpga使用手冊(cè)

    fpga使用手冊(cè),菜鳥(niǎo)必備get
    發(fā)表于 06-09 22:20

    CANopen使用手冊(cè)

    CANopen使用手冊(cè)
    發(fā)表于 09-20 16:01

    1602液晶使用手冊(cè)

    液晶1602的使用手冊(cè)附有應(yīng)用的例子
    發(fā)表于 10-30 17:31

    Cadence使用手冊(cè)經(jīng)典

    Cadence使用手冊(cè)經(jīng)典
    發(fā)表于 01-15 17:05

    加密芯片使用手冊(cè)

    加密芯片的安全性:1、芯片本身硬件的安全,采用U盾芯片2、算法安全,可以采用國(guó)家商用密碼算法,如SM1,SM7,SSF33等算法,是保密非公開(kāi)算法。加密芯片使用手冊(cè)見(jiàn)附件 加密芯片使用手冊(cè).rar (79.94 KB )
    發(fā)表于 07-09 04:35

    Keil軟件使用手冊(cè)

    非常的KEIL軟件使用手冊(cè),內(nèi)部包含詳細(xì)的軟件的使用介紹,含示例詳解
    發(fā)表于 10-20 19:12

    STM32固件庫(kù)使用手冊(cè)

    最近領(lǐng)導(dǎo)讓我學(xué)學(xué)嵌入式開(kāi)發(fā),在網(wǎng)上看了看老前輩們總結(jié)的嵌入式開(kāi)發(fā)學(xué)習(xí)不歸路,還是決定按照步驟開(kāi)始學(xué)習(xí)。首先是獲取到《STM32固件庫(kù)使用手冊(cè)》和《STM32F10x參考手冊(cè)》兩個(gè)開(kāi)局手冊(cè),在網(wǎng)上找了
    發(fā)表于 08-04 06:40

    有沒(méi)有S32R274的SPE功能詳細(xì)使用手冊(cè)和例子可以參考呢

    請(qǐng)問(wèn),有沒(méi)有S32R274的SPE功能詳細(xì)使用手冊(cè)和例子可以參考呢,我看了reference manual,但是我還是不知道怎么在軟件中啟動(dòng)這個(gè)功能
    發(fā)表于 03-22 08:23

    JMeter 壓力測(cè)試使用手冊(cè)中文使用手冊(cè)

    JMeter 壓力測(cè)試使用手冊(cè)中文使用手冊(cè)
    發(fā)表于 09-05 09:51 ?11次下載
    JMeter 壓力測(cè)試<b class='flag-5'>使用手冊(cè)</b>中文<b class='flag-5'>使用手冊(cè)</b>

    JMeter壓力測(cè)試使用手冊(cè)的中文使用手冊(cè)

    JMeter壓力測(cè)試使用手冊(cè)的中文使用手冊(cè)
    發(fā)表于 09-08 09:57 ?7次下載
    JMeter壓力測(cè)試<b class='flag-5'>使用手冊(cè)</b>的中文<b class='flag-5'>使用手冊(cè)</b>