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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(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 命令默認會查找當(dāng)前目錄下的 Makefile 或 makefile 文件,并執(zhí)行該文件中的第一個目標(target)。

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

使用場景

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

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

示例

假設(shè) 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ū)別。

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

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

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

假設(shè) 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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11412

    瀏覽量

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

    關(guān)注

    5

    文章

    719

    瀏覽量

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

    關(guān)注

    0

    文章

    674

    瀏覽量

    33519
  • make
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    12619

原文標題: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 ?1082次閱讀
    Integrated Solutions <b class='flag-5'>Make</b> Anal

    C2make手冊

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

    gnu make 中文手冊

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

    GNU_make中文手冊

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

    GNU-make中文手冊

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

    GNU_make中文手冊

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

    GNU-Make-使用手冊

    電子專業(yè)單片機相關(guān)知識學(xué)習(xí)教材資料——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次下載
    主站蜘蛛池模板: 日本三级电影在线观看 | 久久久精品免费观看 | 免费在线不卡视频 | 天天做日日爱 | 国产视频分类 | 亚洲 欧美 动漫 | 69女poren18女 | 国产做爰一区二区 | 免费超爽视频 | 日本欧美一区二区免费视 | 久久大伊人 | 狠狠狠色丁香婷婷综合久久88 | 狼人久久尹人香蕉尹人 | 狼色视频在线观免费观看 | 女人张开腿让男人桶视频免费大全 | 国产一级又色又爽又黄大片 | 午夜影院h | 黄色污网站在线观看 | 国产精品资源在线播放 | 亚洲光棍天堂 | 五月亭亭六月丁香 | 狠狠色丁香六月色 | 精品久久天干天天天按摩 | 亚洲视频第一页 | 男人操女人免费视频 | 欧美做a欧美 | 日韩一级片在线播放 | 美女福利在线观看 | 伊人久久大香线蕉综合bd高清 | 俺来也俺来也天天夜夜视频 | 99青草青草久热精品视频 | 亚洲成片在线观看12345ba | 1024国产高清精品推荐 | 午夜看一级特黄a大片 | 天堂一区二区在线观看 | 四虎影永久地址www 四虎影永久在线观看精品 四虎影永久在线观看网址 四虎影院.com | 午夜神马福利影院 | 美女被免费视频的网站 | 国产成人精品视频一区二区不卡 | ww欧洲ww在线视频看 | 成人黄色免费看 |