第一載 初識make與makefile

2021-09-27 06:30:53 字數 1746 閱讀 6968

我們寫程式完成後,都需要進行編譯才能執行,在一些整合的ide(如vs2010、qt等),都提供有一鍵編譯的功能,整個編譯過程(預處理、編譯、鏈結),ide已經幫我們遮蔽了。但是在嵌入式或linux平台下的開發,基本都是通過make跟makefile來管理整個工程專案,即原始碼與原始碼之間如何關聯、依賴等等。除此之外,學習make跟makefile,可以使得開發人員對於程式的編譯過程有更深層次的認識。下邊簡單來說說什麼是make與makefile。

make其實是乙個程式,我們通過執行這個程式來編譯我們的原始碼檔案,而makefile泛指一類檔案,這類檔案中包含了我們所編寫的原始碼檔案之間的規則、關係等等,執行make程式的時候,將makefile這類檔案作為make程式的引數,便可依據編寫在makefile檔案中的規則,來編譯我們的原始碼。

比如我們有乙個makefile的檔案叫make.txt(名字隨便起),裡邊包含如下兩行資訊

target1:

echo "this is target1"

target2:

echo "this is target2"

為了解釋make.txt中的兩行資訊,我們先來了解下makefile檔案的構成及基本的規則

makefile檔案總體上由目標命令構成(需要注意的是命令前邊必須為tab鍵,即\t),再加上一些變數等等

目標:

命令

按照上邊的目標與命令可以知道,target就是目標,echo "this is first makefile demo" 就是命令。現在makefile檔案與基本的規則都準備完畢,下邊通過如下命令執行make

make-fmake.txttarget2(-f為制定makefile檔案為make.txt,target2為檔案中的目標,即要執行制定目標下的命令),執行結果如下

其實make還可以簡化,假如我們將make.txt改名為makefile或makefile,那麼久需要用-f指定檔名,make程式會主動在當前目錄下尋找makefile或makefile作為makefile檔案,除此外,我們也可以不指定目標,此時make就會去執行makefile檔案中最頂部的目標所對應的命令。為此,我們將make.txt改為makefile,並執行如下命名:

可以看到,make會在當前目錄下=主動尋找makefile,並執行最頂部目標的命令,當然我們也可以這樣執行:make target2,那麼此時執行的就是target2這個目標下命令。

總結:1、make是乙個可執行程式,主要用於編譯原始碼、管理工程

2、makefile本質是乙個原始碼檔案,其中包含各種規則,主要是各個原始碼檔案之間的關聯關係

3、make依據makefile內部的規則,對我們編寫的源**進行編譯連線等操作。

以上內容參考《狄泰軟體學院》作業系統篇之 - makefile專題

js第一(初識)

1 js是世界最流行的語言,是一種指令碼語言 不需要編譯,由js直譯器逐行解釋並執行 2 瀏覽器分為渲染引擎 用來解析html和css的俗稱核心 和js引擎 js直譯器,用來讀取網頁中的js 3 js組成 ecmascript js語法 dom 物件導向模型 bom 瀏覽器物件模型 4 js三種寫法...

第一單元 初識html

第一單元 初識html 什麼是html html並不是一門程式語言,而是標記語言他的字尾名是.html,用單詞的首字母或者單詞來來組成各個結構的意義。html標記 html標記用法是使用 如這樣 書寫格式 標籤 內容當然我們的標記是分為單標籤和雙標籤的,但占多數是雙標籤,但使用下來不多的單標籤使用率...

Makefile第一講 乙個簡單的Makefile

摘要 假定你對linux已經比較的熟悉,假定你程式設計已經稍有經驗,本文不會對文章作出太多基礎性解釋,看不懂莫怪,只當作給學習的朋友乙個引導思路,我也是乙個初學者,邊學邊寫,將學會的教給大家,文章有錯誤之處誤導了朋友,請輕噴 makefile 假定你對linux已經比較的熟悉,假定你程式設計已經稍有...