linux下makefile的vpath问题
我的文件目录结构是:
./
makefile
header
globe.h
src
main.c
现在我写的简单makefile的一部分是:
#开始
vpath %.c ./src
vpath %.h ./header
main.o:main.c globe.h
.PHONY clean
clean:
-rm *.o
#结束
我在当前目录当中用make main.o命令测试vpath,结果make的自动推导出:cc -c -o main.o ./src/main.c 但是却提示找不到globe.h,我的理解是既然make自动推导出现了main.c的位置,那么没有理由找不到globe.h啊。同时,如果生成main.o的动作不用make自动推导,自己添加shell命令:gcc -c -o main.o main.c globe.h,结果显示main.c和globe.h都找不到了....
怎么回事啊!请各位不吝赐教,谢谢!
------解决方案--------------------gcc -c -o main.o main.c -I.
不用指定头文件,只用指定目录即可
------解决方案--------------------VPATH 只控制.c/.cpp的查找路径吧
对于.h文件,需要使用-I./header
------解决方案--------------------是这样的,vpath只对Makefile中的依赖查找有效
对源文件中的#include的查找无效。