可以參考:跟我一起寫Makefile:概述
wildcard用法
舉例:SRC=$(wildcard lib/*.cpp)
透過wildcard可以list (ls)出所有放在資料夾lib下的cpp檔
addprefix的用法則是
$(addprefix
將
舉例:$(addprefix src/, foo.cpp boo.cpp)
如此一來你就會得到src/foo.cpp src/boo.cpp
addsuffix的用法同上
只不過是加在
這邊隨便舉個範例好了
譬如說你想要compile所有位在lib/和lib/algebra/下的cpp檔
那你可以試試看以下方法
LIBDIR = lib/ lib/algebra/
TEMP = $(addsuffix *.cpp, $(LIBDIR))
LIB_SRC = $(wildcard $(TEMP))
再搭上字串詞綴代換和內隱規則
(不懂的可以去參考連結那找)
OBJ = $(LIB_SRC:.cpp=.o)
#將所有檔名的.cpp換成.o
%.o : %.cpp %.h
g++ -c $<
靈活搭配一下可以說是妙用無窮
沒有留言:
張貼留言