程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> makefile語法簡介

makefile語法簡介

編輯:關於C語言
 

1.makefile語法

由一組依賴關系和規則組成。

myapp: main.o 2.o 3.o

gcc -o myapp main.o 2.o 3.o

main.o: main.c a.h

gcc -c main.c

2.o: 2.c a.h b.h

gcc -c 2.c

3.o: 3.c b.h c.h

gcc -c 3.c

 

2. make命令參數和選項

-k:發現錯誤繼續編譯

-n:輸出要執行的步驟但不執行

-f:指定makefile的名字

 

3.注釋

以#開頭

 

4.宏

通過語句 MACRONAME=value 定義

引用方法為 $(MACRONAME) 或 ${MACRONAME}

一些特殊的內置宏:

$? 列出當前目標所依賴的文件列表中比當前文件還要新的文件

$@ 當前目標的名字

$< 當前依賴文件的名字

$* 不包括後綴名的當前依賴文件的名字

 

5.多個目標

建議在makefile開始處定義all,如:

all: myapp

使用shell命令時:在每行末尾加"\"


 

兩個特殊符號的作用:

-: 告訴makefile忽略所有的錯誤

@: 告訴make在執行某條命令前不該將命令本身輸出到標准輸出,有輸出時用:echo

兩個shell命令之間如果有"與關系",中間加"&&"

 

6.內置規則

 

7.後綴和模式規則

%.cpp: %o

$(CC) -xc++ $(CFLAGS) -I$(INCLUDE) -c $<

 

8.歸檔文件(靜態庫)

$(MYLIB): $(MYLIB)(2.o) $(MYLIB)(3.o)

$(AR) $(ARFLAGS) $@ $<

 

9.子目錄

mylib.a:

(cd mylibdirectory;$(MAKE))

或者

mylib.a: mydir/2.o mydir/3.o

ar -rv mylib.a $?

 

10.創建依賴關系

gcc -MM main.c 2.c 3.c

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved