VPATH无法在makefile中工作

时间:2011-10-06 18:26:46

标签: linux makefile

我有一个包含内容的非常小的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的用法。

1 个答案:

答案 0 :(得分:6)

虽然make找到main.c就好了,但您在这里错过了自动变量的使用:

main.o : main.c
        gcc -o $@ -c $<

将通过make gcc调用

进行扩展
gcc -o main.o -c src/main.c

始终尽可能使用automatic variables $<(第一个先决条件)和$@(目标),使它们更强大,更易于阅读。