精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

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

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

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

1理論

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

1、make

功能

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

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

使用場景

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

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

示例

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

2、make all

功能

make all 通常用于編譯和構建整個項目。

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

使用場景

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

這通常是項目構建的標準步驟。

示例

Makefile 中可能包含以下內容:

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

運行 make all 會依次構建 prog1 和 prog2。

3、make clean

功能

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

使用場景

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

示例

Makefile 中可能包含以下內容:

clean:
    rm -f *.o myProgram

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

所以:

make:默認構建項目,根據 Makefile 中的第一個目標執行。

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

make clean:清理項目,刪除之前構建過程中生成的文件,準備一個干凈的構建環境。

2實踐

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

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

目錄結構如下:

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

假設 main.c 內容如下:

#include
#include "helper.h"


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

helper.c內容如下:

#include
#include "helper.h"


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

helper.h內容如下:

void helperFunction();

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

CC=gcc
CFLAGS=-I.
 
# 默認目標
all: myProgram
 
# 構建最終程序
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)
 
# 清理構建文件
clean:
    rm -f *.o myProgram

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

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

運行 make 或 make all。

這將編譯代碼并生成 myProgram。

運行 ./myProgram 查看輸出。

完成后,運行 make clean 清理構建文件。

說明:

make 或 make all

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

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

make clean

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

這用于清理項目,確保下次構建時從干凈狀態開始。

審核編輯:湯梓紅

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

    關注

    87

    文章

    11125

    瀏覽量

    207937
  • 命令
    +關注

    關注

    5

    文章

    658

    瀏覽量

    21931
  • 編譯
    +關注

    關注

    0

    文章

    646

    瀏覽量

    32673
  • make
    +關注

    關注

    0

    文章

    16

    瀏覽量

    12494

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

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

收藏 人收藏

    評論

    相關推薦

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

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

    Make Precise Base-Station Powe

    Make Precise Base-Station PowerMeasurements:Make Precise Base-StationPowerMeasurements:A highly
    發表于 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
    發表于 10-09 17:09 ?0次下載

    gnu make使用手冊

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

    gun make教程

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

    Integrated Solutions Make Anal

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

    C2make手冊

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

    gnu make 中文手冊

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

    GNU_make中文手冊

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

    GNU-make中文手冊

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

    GNU_make中文手冊

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

    GNU-Make-使用手冊

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

    GNU_Make_中文手冊下載

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

    Openwrt通用固件 make menuconfig配置教程

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

    GNU make中文手冊

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