vpath和VPATH,还有g++搜索路径的说明:https://blog.csdn.net/changli_90/article/details/7881905makefile变量的使用:https://blog.csdn.net/naughfy/article/details/80150312全自动构建的例子:https://www.cnblogs.com/lzpong/p/9205736.html简单的makefile使用举例:文件结构如下:./├─./bin├─./src│ ├─./utils│ │ └─testLib.cpp│ └─main.cpp├─./include│ ├─./utils│ └─testLib.h├─./obj└─makefile创建上面结构的命令:rm -fr *mkdir binmkdir srcmkdir includemkdir objtouch makefilecd srcmkdir utilscd utilstouch testLib.cppcd ..touch main.cppcd ..cd includemkdir utilscd utilstouch testLib.hcd ../..下面是makefile的写法:注意的是foreach的使用,很多地方都可以用foreach来减少makefile的书写srcPath := ./srcsrcPath += ./src/utilsincPath := ./includeincPath += ./include/utilsincPathCpp := -I./includeincPathCpp += -I./include/utilsvpath %.cpp $srcPathvpath %.h ${incPath}exeTest:main.o testLib.o g++ -o $@ $(foreach of, $^,./obj/$(of))main.o:./src/main.cpp ./include/utils/testLib.h g++ -c $(incPathCpp) $testLib.o: ./src/utils/testLib.cpp ./include/utils/testLib.h g++ -c $(incPathCpp) $rm: rm obj/*