歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux基礎知識 >> 寫makefile的示例

寫makefile的示例

日期:2017/3/2 17:16:24   编辑:Linux基礎知識
如何寫makefile

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)

  

Copyright © Linux教程網 All Rights Reserved