天天看點

make指令

核心驅動通用makefile:      
KERNELDIR := /share/linux-src
CURRENT_PATH := $(shell pwd)

ENV:=ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

obj-m := ramdisk.o

build: kernel_modules

kernel_modules:
        $(MAKE) $(ENV) -C $(KERNELDIR) M=$(CURRENT_PATH) modules

clean:
        $(MAKE) $(ENV) -C $(KERNELDIR) M=$(CURRENT_PATH) clean      

​​程式設計開發​​

make指令是GNU的工程化編譯工具,用于編譯衆多互相關聯的源代碼問價,以實作工程化的管理,提高開發效率。

文法

make(選項)(參數)      

選項

-f:指定“makefile”檔案;
-i:忽略指令執行傳回的出錯資訊;
-s:沉默模式,在執行之前不輸出相應的指令行資訊;
-r:禁止使用build-in規則;
-n:非執行模式,輸出所有執行指令,但并不執行;
-t:更新目标檔案;
-q:make操作将根據目标檔案是否已經更新傳回"0"或非"0"的狀态資訊;
-p:輸出所有宏定義和目标檔案描述;
-d:Debug模式,輸出有關檔案和檢測時間的詳細資訊。      

Linux下常用選項與Unix系統中稍有不同,下面是不同的部分:

-c dir:在讀取 makefile 之前改變到指定的目錄dir;
-I dir:當包含其他 makefile檔案時,利用該選項指定搜尋目錄;
-h:help文擋,顯示所有的make選項;
-w:在處理 makefile 之前和之後,都顯示工作目錄。      

參數

目标:指定編譯目标。

知識擴充

無論是在linux 還是在Unix環境 中,make都是一個非常重要的編譯指令。不管是自己進行項目開發還是安裝應用軟體,我們都經常要用到make或make ​​install​​。利用make工具,我們可以将大型的開發項目分解成為多個更易于管理的子產品,對于一個包括幾百個源檔案的應用程式,使用make和 makefile工具就可以簡潔明快地理順各個源檔案之間紛繁複雜的互相關系。

而且如此多的源檔案,如果每次都要鍵入​​gcc​​指令進行編譯的話,那對程式員 來說簡直就是一場災難。而make工具則可自動完成編譯工作,并且可以隻對程式員在上次編譯後修改過的部分進行編譯。

是以,有效的利用make和 makefile工具可以大大提高項目開發的效率。同時掌握make和makefile之後,您也不會再面對着Linux下的應用軟體手足無措了。

https://man.linuxde.net/make

繼續閱讀