Makefile語法和使用示例

2021-10-05 08:36:26 字數 2019 閱讀 2765

make命令格式

makefile中的變數

編寫多檔案程式設計的makefile

使用autotools生成包含多檔案的makefile

目標:依賴檔案列表

:命令列表

首先寫乙個main.h,**如下:

#define pi 3.14
在同目錄下,再寫乙個main.c,**如下:

#include

#include

"main.h"

intmain()

在終端執行vim makefile命令,在makefile檔案中寫入以下內容

main:mian.c main.h 

gcc main.c -o main

clean:

rm main

make [-f file] [option] [targets]

[-f file]:make 預設工作目錄中尋找名為gunmakefile,makefile,makefile作為makefile輸入檔案,-f 可以指定其他名字的檔案作為makefile輸入檔案

[option] :

-v:顯示make工具的版本資訊

-w:在處理makefile之前和之後顯示工作路徑

-c dir:讀取makefile之前改變工作路徑至dir目錄

-n: 只列印執行的命令但不執行

-s:執行但不顯示執行命令

1、自定義變數

在makefile中定義的變數

make工具傳給makefile的變數

2、系統環境變數

make工具解析makefile之前,讀取環境變數並且設定為makefile的變數

3、預定義變數

這些變數具有特殊含義,可直接在makefile中使用

$@: 目標名

$*目標名中除含副檔名的部分,副檔名包括:s,s,c,c,cc,cp,cpp,o等

$<:>

$^:依賴列表檔案中除去重複檔案的部分

$+:依賴列表中所有的檔案

$?:依賴列表中比目標檔案新的檔案

1、用vim寫乙個簡單的hello.c

#include
intmain()

2、在終端執行vim makefile命令,在makefile檔案中寫入以下內容

cc=gcc

exec=hello

cflags=-wall -g

obj=hello.o

$(exec):

$(obj)

$(cc)

$(obj)

-o $@

$(cflags)

$(obj)

:hello.c

$(cc)

-c $< -o $@

$(cflags)

clean:

rm *.c,$(

exec

),*.o

當需要makefile多個檔案該如何編寫呢?即,原始檔中需要呼叫標頭檔案中的包含的庫或函式該如何寫makefile。以下這個例子可以供作參考:

1、寫乙個hello.**件內容如下:

#include

2、寫乙個hello.c檔案內容如下:

#include

"hello.h"

intmain()

可用兩種方法實現,這裡直接放**截圖

可以用變數對這兩個方法進行優化,這裡我偷懶就不做了。

makefile語法示例

edit main.o kbd.o cc o edit main.o kdb.o main.o main.c defs.h cc c main.c kbd.o kbd.c defs.h command.h cc c kbd.c clean rm o edit makefile中使用變數 object...

crontab語法和使用示例

linux定時任務一般使用crond服務,系統一般預設安裝有定時任務crond服務 service crond status基本語法 crontab 選項 e 編輯或新增定時任務 l 檢視系統的定時任務 r 刪除當前使用者所有的定時任務 示例 root hadoop103 xiaomao cront...

Makefile示例學習

裸機程式中的makefile是把程式的編譯和鏈結過程分開的,編譯要使用編譯器gcc,鏈結使用鏈結器ld 示例 led.bin start.o arm linux ld ttext 0x0 o led.elf arm linux objcopy o binary led.elf led.bin arm...