艺术的追求从编程开始

C/C++/UNIX/PYTHON/ALGORITHM

导航

如何写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.o\
insert.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)

  

posted on 2012-05-01 16:28  Rambo.Wang  阅读(383)  评论(0编辑  收藏  举报