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...