使用makefile編譯c程式

hxl發表於2009-03-25
使用makefile編譯c程式[@more@]

一、Makefile的規則
Makefile的規則如下:
target ... : prerequisites ...
command
這裡的command是指生成或是處理target隨執行的命令;prerequisites指的是生成target所需要依賴的檔案.
二、一個示例
自行編寫了2個C檔案(get_max.c,fn_max.c),我們為了完成前面所述的那三個規則,我們的Makefile應該是下

面的這個樣子的。
SHELL = /usr/bin/ksh
LINK.c = cc
get_max:get_max.o fn_max.o
cc -o get_max get_max.o fn_max.o
get_max.o:get_max.c
cc -c get_max.c
fn_max.o:fn_max.c
cc -c fn_max.c
clean:
rm get_max.o fn_max.o

我們可以把這個內容儲存在檔案為“Makefile”或“makefile”的檔案中,然後在該目錄下直接輸入命令“make”

就可以生成執行檔案get_max.。如果要刪除執行檔案和所有的中間目標檔案,那麼,只要簡單地執行一下

“make clean”就可以了。
三、makefile中使用變數
比如,我們宣告一個變數,叫objects,在makefile一開始就這樣定義:
objects=get_max.o fn_max.o
於是,我們就可以很方便地在我們的makefile中以“$(objects)”的方式來使用這個變數了,於是我們的改良版

makefile就變成下面這個樣子:

SHELL = /usr/bin/ksh
LINK.c = cc

objects=get_max.o fn_max.o
get_max:${objects}
cc -g -o get_max ${objects}
fn_max.o:fn_max.c
cc -c fn_max.c
clean:
rm ${objects}
於是如果有新的 .o 檔案加入,我們只需簡單地修改一下 objects 變數就可以了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/77311/viewspace-1019430/,如需轉載,請註明出處,否則將追究法律責任。

相關文章