8)objects = *.o 通配符同样可以用在变量中。并不是说[*.o]会展开,objects的值就是“*.o”。Makefile 中的变量其实就是 C/C++中的宏。如果你要让通配符在变量中展开,也就是让 objects 的值是所有[.o]的文件名的集合,那么,你可以这样:objects := $(wildcard *.o),这种用法由关键字“wildcard”指出。 9)通过makefile编译,自动推导,如果发现当前的文件没有做过更新,则不会编译,只编译更新过了的。 附: 1、预定义变量选项
2、make 选项
3、示例代码 CC=gcc CXX=g++ CFLAGS= -g -Wall INC=./*** LIB=./***.a CFLAGS+= -DSNACC_DEEP_COPY -DHAVE_VARIABLE_SIZED_AUTOMATIC_ARRAYS -Wno-deprecated -lpthread -lssl TARGET=*** OBJ = **.o \ ./**.o\ $(TARGET): $(OBJ) $(CXX) $(CFLAGS) -o $@ $^ $(LIB) #如下代码,把所有的cpp文件编译成.o文件 %.o: %.cpp $(CXX) $(CFLAGS) $(INC) -c -o $@ $< clean: rm -f *.o rm -f $(TARGET) 参考 【1】 http://www.cnblogs.com/goodcandle/archive/2005/11/17/278702.html |
|
来自: Kinetis > 《makefile》