1.一個簡單的例子:
TOPDIR = ../ include $(TOPDIR)Rule.mak EXTRA_LIB += EXEC = $(INSTALL_DIR)/hello OBJS = hello.o all:$(EXEC) $(EXEC):$(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(EXTRA_LIBS)
install:
$(EXP_INSTALL) $(EXEC) $(INSTALL_DIR)
clean:
-rm -f $(EXEC) *.elf *.gdb *.o
好了,其中:
CC 指明編譯器的宏
EXEC表明生成的執行文件名稱的宏
OBJS 目標文件列表宏
LDFLAGS鏈接參數宏
all 編譯主入口程序
clean: 清除編譯結果
install 將編譯成功的可執行文件安裝到系統目錄中,一般為/usr/local/bin
注意:在makefile中的命令,必須以[tab]鍵開頭。注釋用//
2.一個c程序實例:
target...:dependencies...
command
...
例如:
main.o : main.c defs.h gcc -c main.c clean: rm edit main.o
由於makefile可以自動推導.c所以main.c可以省略
而.o可以用$(OBJECTS)來代替
因此,最終makefile可以寫成:
OBJECTS = main.o kbd.o command.o display.oinsert.o search.o files.o utils.o edit : $(OBJECTS) CC -o edit $(OBJECTS)
$(OBJECTS) : defs.h kdb.o command.o files.o : command.h display.o insert.o search.o files.o : buffer.h
.PHONY clean clean: rm edit $(OBJECTS)