1. 程式人生 > >Makefile 編寫

Makefile 編寫

        由於專案中經常需要用到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)