菠菜

敏感而豁达

一种有规律多目标Makefile写法

场景:有a.cpp b.cpp c.cpp….共计n个源文件,每个源文件要生成一个对应的名为a b c …的可执行文件。

Makefile示例:

CXX = g++
LIB = ../lib/source/libDs.a
INCLUDE = ../lib/include/
CFLAGS = -I$(INCLUDE)

bins =		a \
		b \
		c

all :
	for i in $(bins); do \
		$(CXX) -c $(CFLAGS) $(addsuffix .cpp, $$i) -o $(addsuffix .o, $$i); \
		$(CXX) -o $$i $(addsuffix .o, $$i) $(LIB); \
	done

clean : 
	for i in $(bins); do \
		rm -f $(addsuffix .o, $$i); \
		rm -f $$i; \
	done

主要就是利用addsuffix来处理这种有规律的匹配,再用for语句加以循环。以后每增加一个源文件,就在bins那里加一行即可。

posted on 2012-07-23 17:28  ~菠菜~  阅读(848)  评论(0编辑  收藏  举报

导航