一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

make、make all和make clean的使用方法

jf_Vqngj70R ? 來源:美男子玩編程 ? 2024-01-05 12:32 ? 次閱讀

剛接觸Linux,認為直接make后就完成了編譯,沒想到編譯出的結(jié)果存在很大問題,原來是make、make all和make clean的使用方法不對。

1理論

make、make all和make clean 是在使用 make 構(gòu)建系統(tǒng)時常見的命令。它們用于編譯和管理項目中的代碼。以下是每個命令的功能和區(qū)別:

1、make

功能

make 命令默認會查找當前目錄下的 Makefile 或 makefile 文件,并執(zhí)行該文件中的第一個目標(target)。

如果第一個目標依賴于其他目標,make 會先構(gòu)建這些依賴目標。

使用場景

通常用于編譯和鏈接項目中的代碼。

如果沒有指定目標,make 會嘗試編譯和鏈接整個項目。

示例

假設 Makefile 的第一個目標是 all,則運行 make 會自動執(zhí)行 make all。

2、make all

功能

make all 通常用于編譯和構(gòu)建整個項目。

all 是一個常見的目標,一般在 Makefile 中明確定義,用于編譯項目中的所有必要文件。

使用場景

在想要編譯項目中的所有組件時使用。

這通常是項目構(gòu)建的標準步驟。

示例

Makefile 中可能包含以下內(nèi)容:

all: prog1 prog2
prog1: ...
prog2: ...

運行 make all 會依次構(gòu)建 prog1 和 prog2。

3、make clean

功能

make clean 用于清理項目,通常會刪除所有由之前的構(gòu)建過程生成的文件,如對象文件(.o)、編譯產(chǎn)物等。

使用場景

在需要清理構(gòu)建環(huán)境(例如,重新從頭開始構(gòu)建項目)時使用。

示例

Makefile 中可能包含以下內(nèi)容:

clean:
    rm -f *.o myProgram

運行 make clean 會刪除所有對象文件和程序 myProgram。

所以:

make:默認構(gòu)建項目,根據(jù) Makefile 中的第一個目標執(zhí)行。

make all:明確構(gòu)建整個項目,通常是 Makefile 中定義的標準目標。

make clean:清理項目,刪除之前構(gòu)建過程中生成的文件,準備一個干凈的構(gòu)建環(huán)境。

2實踐

讓我們通過一個具體的例子來解釋 make、make all 和 make clean 的功能和區(qū)別。

假設我們有一個簡單的C語言項目,包含兩個源文件:main.c 和 helper.c,以及一個頭文件 helper.h。我們將創(chuàng)建一個 Makefile 來編譯和管理這個項目。

目錄結(jié)構(gòu)如下:

/項目目錄
|-- main.c
|-- helper.c
|-- helper.h
|-- Makefile

假設 main.c 內(nèi)容如下:

#include
#include "helper.h"


int main() {
    printf("Hello, World!
");
    helperFunction();
    return 0;
}

helper.c內(nèi)容如下:

#include
#include "helper.h"


void helperFunction() {
    printf("Helper function called.
");
}

helper.h內(nèi)容如下:

void helperFunction();

一個簡單的 Makefile 可能如下所示:

CC=gcc
CFLAGS=-I.
 
# 默認目標
all: myProgram
 
# 構(gòu)建最終程序
myProgram: main.o helper.o
    $(CC) -o myProgram main.o helper.o
 
# 編譯 main.c
main.o: main.c
    $(CC) -c main.c $(CFLAGS)
 
# 編譯 helper.c
helper.o: helper.c
    $(CC) -c helper.c $(CFLAGS)
 
# 清理構(gòu)建文件
clean:
    rm -f *.o myProgram

所以如何使用make、make all和make clean呢?步驟如下:

在包含這些文件的目錄中打開終端。

運行 make 或 make all。

這將編譯代碼并生成 myProgram。

運行 ./myProgram 查看輸出。

完成后,運行 make clean 清理構(gòu)建文件。

說明:

make 或 make all

運行 make 或 make all 將編譯 main.c 和 helper.c,然后鏈接這些對象文件以創(chuàng)建可執(zhí)行文件 myProgram。

這是因為 all 是 Makefile 中定義的默認目標,而 make 默認執(zhí)行第一個目標。

make clean

運行 make clean 將刪除所有編譯生成的對象文件(.o 文件)和可執(zhí)行文件 myProgram。

這用于清理項目,確保下次構(gòu)建時從干凈狀態(tài)開始。

審核編輯:湯梓紅

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

    關(guān)注

    87

    文章

    11420

    瀏覽量

    212361
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    722

    瀏覽量

    22633
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    674

    瀏覽量

    33614
  • make
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    12620

原文標題:make、make all和make clean的使用方法

文章出處:【微信號:美男子玩編程,微信公眾號:美男子玩編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Hightec編譯出錯make: *** No rule to make target 'all'. Stop.

    make: *** No rule to make target 'all'.Stop.
    發(fā)表于 12-17 11:18

    Make Precise Base-Station Powe

    Make Precise Base-Station PowerMeasurements:Make Precise Base-StationPowerMeasurements:A highly
    發(fā)表于 09-23 23:03 ?12次下載

    GNU make中文手冊 (pdf版下載)

    GNU make中文手冊 (pdf版下載):GNU make中文手冊.1ver - 3.81第一章:概述.71.1 Make之前基本知識:.71.1.1 概述71.1.2 準備知識81.2 GNU
    發(fā)表于 10-09 17:09 ?0次下載

    gnu make使用手冊

    gnu make使用手冊本文瑾獻給所有熱愛Linux的程序員!本文檔版權(quán)所有,禁止用于任何商業(yè)行為。本文比較完整的講述GNU make工具,涵蓋GNU make的用法、語法。同時重點討論如何為一
    發(fā)表于 10-09 17:10 ?0次下載

    gun make教程

    gun make教程.rar 關(guān)于本書 本文瑾獻給所有熱愛Linux的程序員!本中文文檔版權(quán)所有。 本文比較完整的講述GNU make工具,涵蓋GNU make的用法、語法。同時
    發(fā)表于 03-10 13:50 ?0次下載

    Integrated Solutions Make Anal

    Integrated Solutions Make Analog Filter Design Easy Abstract: This application note explains
    發(fā)表于 11-08 17:40 ?1083次閱讀
    Integrated Solutions <b class='flag-5'>Make</b> Anal

    C2make手冊

    這份手冊描述了由秦作坊的默之實現(xiàn)的Chinc2make(2.10.06-8版本,2010年8月1日)。當您進行C、C++、Gtk+、Gtkmm、Motif、wxWidget和openGL程序設計時,c2make工具可以根據(jù)源代碼文件直接生成Makefile文件
    發(fā)表于 04-18 20:29 ?6次下載

    gnu make 中文手冊

    介紹怎樣寫Makefile,并能夠使用GNU 的make來管理自己的工程
    發(fā)表于 11-10 16:49 ?2次下載

    Make a difference with DragonBoa

    Make a difference with DragonBoard 410c-如何使用串口轉(zhuǎn)USB打印功能講解,我還上傳了很多相關(guān)資料,感興趣的小伙伴們可以去我上傳的資料頁面里看看。
    發(fā)表于 06-30 15:10 ?2次下載

    GNU_make中文手冊

    電子專業(yè)單片機相關(guān)知識學習教材資料——GNU-Make
    發(fā)表于 08-23 16:23 ?0次下載

    GNU-make中文手冊

    電子專業(yè)單片機相關(guān)知識學習教材資料——GNU-Make
    發(fā)表于 08-23 16:23 ?0次下載

    GNU_make中文手冊

    電子專業(yè)單片機相關(guān)知識學習教材資料——GNU-Make
    發(fā)表于 08-23 16:23 ?0次下載

    GNU_Make_中文手冊下載

    GNU_Make_中文手冊下載
    發(fā)表于 10-30 09:20 ?12次下載
    GNU_<b class='flag-5'>Make</b>_中文手冊下載

    Openwrt通用固件 make menuconfig配置教程

    Openwrt通用固件 make menuconfig配置教程
    發(fā)表于 09-07 12:01 ?5次下載

    GNU make中文手冊

    電子發(fā)燒友網(wǎng)站提供《GNU make中文手冊.pdf》資料免費下載
    發(fā)表于 06-05 13:22 ?0次下載