一种有规律多目标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那里加一行即可。

你可能感兴趣的:(makefile)