用C/C++在Linux上编程时,如果修改了一个头文件,怎样让整个工程自动识别更新呢?那就是使用Makefile自动生成依赖关系。 CC = g++ SHARED = -shared LIBRARY = library.so INCLUDE = CPPFLAGS = SOURCES = $(wildcard *.cpp) SOURCES += ../mean.cpp OBJECTS=$(SOURCES:.cpp=.o) all:$(LIBRARY) %.d: %.cpp @set -e; rm -f $@; $(CC) $(INCLUDE) -MM $(CPPFLAGS) $< | sed -e 's,.*/.o[ :]*,$*.o : ,g' > $@; sinclude $(SOURCES:.cpp=.d) %.o: %.cpp $(CC) $(INCLUDE) -c $< -o $@ $(LIBRARY) : $(OBJECTS) @echo @echo creating library ... @echo $(CC) $(INCLUDE) $(SHARED) -o $(LIBRARY) $(OBJECTS) .PHONY: clean clean: rm -f core *.o *.d $(LIBRARY)