我有一个非常小的包含内容的 make 文件
VPATH = src
main: main.o
gcc -o main main.o
main.o: main.c
gcc -c main.c
当前目录包含一个包含main.c的目录src
当我执行 make 时,出现错误
gcc -c main.c
gcc: main.c: No such file or directory
gcc: no input files
make: *** [main.o] Error 1
当我在当前目录中移动 main.c 时,它起作用了。似乎 VPATH 宏不起作用。请告诉我VPATH的用法。
最佳答案
同时 make
定位main.c
很好,您在这里缺少自动变量的使用:
main.o : main.c
gcc -o $@ -c $<
将由 make 扩展为 gcc
打电话
gcc -o main.o -c src/main.c
始终使用 automatic variables $<
(第一个先决条件)和 $@
(目标)在可能的情况下,它们使 make 既更强大又更易于阅读。
关于linux - VPATH 在 makefile 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7678776/