如何写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) 编辑 收藏 举报