当前位置: 技术问答>linux和unix
如何用make同时编译多个程序?
来源: 互联网 发布时间:2015-11-08
本文导语: 我的某个目录下有prog1.c, prog2.c, prog3.c, prog4.c四个文件(它们有共同的前缀),以及其他一些不相干的文件。我现在想写一个简单的makefile文件来把上述四个文件编译为可执行程序prog1, prog2, prog3, prog4。哪位老大能...
我的某个目录下有prog1.c, prog2.c, prog3.c, prog4.c四个文件(它们有共同的前缀),以及其他一些不相干的文件。我现在想写一个简单的makefile文件来把上述四个文件编译为可执行程序prog1, prog2, prog3, prog4。哪位老大能指点一下这个makefile该怎么写啊?我不希望直接用
objects=prog1.c prog2.c prog3.c prog4.c
这样的写法,我希望make能通过前缀匹配来自动识别我的源程序。这样当我加入新的源程序prog5.c的时候,就不用去改东makefile文件了。
希望大家多多指教,多谢!!
objects=prog1.c prog2.c prog3.c prog4.c
这样的写法,我希望make能通过前缀匹配来自动识别我的源程序。这样当我加入新的源程序prog5.c的时候,就不用去改东makefile文件了。
希望大家多多指教,多谢!!
|
用模式规则。试试:
SOURCES=$(wildcard *.c)
OBJS=$(SOURCES:%.c=%.o)
PROGRAMS=$(SOURCES:%.c=%)
all: $(PROGRAM)
$(PROGRAM): % : %.c
$(CC) $(CFLAGS) $(LFLAGS) $ depends
include depends
SOURCES=$(wildcard *.c)
OBJS=$(SOURCES:%.c=%.o)
PROGRAMS=$(SOURCES:%.c=%)
all: $(PROGRAM)
$(PROGRAM): % : %.c
$(CC) $(CFLAGS) $(LFLAGS) $ depends
include depends