我有一个非常小的make文件包含内容
VPATH = src
main: main.o
gcc -o main main.o
main.o: main.c
gcc -c main.c
Run Code Online (Sandbox Code Playgroud)
当前目录包含一个包含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
Run Code Online (Sandbox Code Playgroud)
当我在当前目录中移动main.c时,它可以工作.似乎VPATH宏不起作用.请告诉我VPATH的用法.
虽然make定位main.c很好,但你在这里错过了自动变量的使用:
main.o : main.c
gcc -o $@ -c $<
Run Code Online (Sandbox Code Playgroud)
这将通过gcc拨打电话进行扩展
gcc -o main.o -c src/main.c
Run Code Online (Sandbox Code Playgroud)
始终使用自动变量 $<(第一个先决条件)和$@(目标),它们使得功能更强大,更易于阅读.
| 归档时间: |
|
| 查看次数: |
2161 次 |
| 最近记录: |