Makefile 編寫
阿新 • • 發佈:2018-12-11
由於專案中經常需要用到MakeFile的編寫,但是有經常容易忘掉其中某些字元含義,因此特寫出此Makefile部落格,用來直接的參考而非對Makefile的詳細講解。
1、一個普通的Makefile指令碼示例
# 這是一個簡單的Makefile,沒有使用變數及其它東西 # 生成檔名為main的可執行檔案 # -lm 是連線數學庫 main:cjsonmain.o cJSON.o gcc -o main cjsonmain.o cJSON.o -lm main.o:cjsonmain.c cJSON.h gcc -g -c cjsonmain.c cJSON.o:cJSON.c cJSON.h gcc -g -c cJSON.c clean: rm -rf *.o main
下面是我的工程目錄圖示
2、升級版的Makefile指令碼示例
Makefile有三個非常有用的變數,其分別含義為: (1) [email protected]目標檔案;
(2)$^--所有的依賴檔案;
(3)$<--第一個依賴檔案;
# 這是一個makefile文件
# CC :指定編譯器
# CFLAG :制定編譯選項
# target :生成可執行應用的名字
# $(target) :此方法為引用target變數
# [email protected] :目標檔案
# $^ :所有依賴檔案
# $< :第一個依賴檔案
CC=gcc
CFLAG= -g
target=app
$(target):xxx.o aff.o
$(CC) $(CFLAG) -o [email protected] $^
xxx.o:xxx.c aff.h
$(CC) -c $< -o [email protected]
aff.o:aff.c aff.h
$(CC) -c $< -o [email protected]
clean:
rm -rf *.o $(target)