makefile 自動化變量:code
$@ : 規則的目標文件名自動化
例如:main:main.o test.oclass
g++ -Wall -g main.o test.o -o main thread
能夠寫成:test
main:main.o test.o變量
g++ -Wall -g main.o test.o -o $@ file
$< : 規則的第一個依賴文件名程序
例如:main.o: main.cpp makefile
g++ -Wall -g -c main.cpp -o main.odi
能夠寫成:
main.o: main.cpp
g++ -Wall -g -c $< -o main.o
$^ : 規則的全部依賴文件列表。
例如:test.o:test.cpp test.h
g++ -Wall -g -c test.cpp test.h -o test.o
能夠寫成:
test.o:test.cpp test.h
g++ -Wall -g -c $^ -o test.o
//程序文件包括main.cpp test.cpp test.h
.PHONY:clean XX=g++ exe=dididididididididi obj=main.o test.o $(exe):$(obj) $(XX) -pthread -Wall -g -o $(exe) $(obj) main.o:main.cpp test.h $(XX) -c main.cpp -o main.o test.o:test.cpp test.h $(XX) -c test.cpp -o test.o clean: rm -f *.o $(exe)