Linux學習心得(3) makefile

2021-09-24 11:56:53 字數 1475 閱讀 2219

makefile概述

makefile是指定工程編譯規則的程式。就像乙個shell指令碼一樣,也可以執行作業系統的命令。

自動化編譯:寫好makefile程式後,只需乙個make命令,完全自動編譯。make是乙個解釋makefile中指令的命令工具。

makefile語法:由若干條規則組成,每條規則的語法結構:

target ... : prerequisites ...

command ... ...

每條規則由依賴關係和命令兩部分組成。

target是目標檔案,還可以是乙個標籤(label),prerequisites(前提,先決條件))就是要生成那個target所需要的檔案或是目標。command也就是make需要執行的命令。(任意的shell命令)

make命令語法:make [選項][目標] ]

功能:建立指定目標,如果沒指定目標,建立第乙個目標。make預設的規則定義檔案是gnumakefile、makefile或makefile,否則使用-f指定檔案。

常用選項:

-f file 指定規則檔案

-c dir 讀取規則檔案前進入指定目錄dir

多檔案makefile的更新原理(基於時間):

makefile變數

1)自定義變數:將字串賦給變數名,在makefile變數無資料型別。

語法:變數名=字串

引用:$(變數名)

2)環境變數:make在執行過程中將環境變數轉換為同名同值的make變數,使用者也可在makefile中對這些變數進行重新定義。

3)預定義變數:

4)自動變數:

makefile中的函式(都是有返回值)

1)wildcard 查詢當前目錄下所有.c檔案,返回值給src。

src =$ (wildcard ./*.c)

2)patsubst 替換所有.c檔案為.o檔案。

obj=$(patsubst ./%.c, ./%.o, $(src))

make clean

清除上次的make命令所產生的object檔案(字尾為「.o」的檔案)及可執行檔案。

例子:

Linux學習心得

一 首先我分享一下我對linux學習過程的幾篇部落格 1.通過反編譯乙個簡單的c程式,解釋堆疊的變化 2.乙個精簡的linux核心分析 3.跟蹤分析乙個簡單的linux核心的執行 4.分析乙個api的呼叫機制 5.分析linux核心建立乙個新程序的過程 6.linux核心如何裝載和啟動乙個可執行程式...

linux學習心得

在使用linux系統時,如要利用一些終端服務。都需要開啟linux中的相應伺服器。其中可以利用chkconfig list 或 chkconfig list more命令檢視服務是否起動。如檢視ftp服務 可用chkconfig list grep vsftpd 如果其狀態是關閉的,就要用chkco...

Linux學習心得

說起linux,就難免讓人想起windows 但反過來,談起windows,卻不一定會讓人想起linux,可見linux還有很長的一段路要走 基本上都會將linux與windows放到一起來比較,比如哪個系統操作更方便,哪個系統更加安全,哪個系統使用更加高效等等。拿桌面端來講,自然是windows系...