首页 > 解决方案 > 如何使用Makefile隐式规则构建Makefile同一目录下不存在的文件

问题描述

我有以下文件夹结构:

src
 file1.c
 file2.c
 Makefile
 - config
     file3.c

在 makefile 中,我使用隐式规则来构建所有源文件:

%.o:%.c
  $(CC) -c -o $@ $<

我也想构建 file3.c,但我找不到这样做的方法。

任何帮助表示赞赏!

标签: makefile

解决方案


简单的方法是为 编写一个明确的规则file3.o

file3.o: config/file3.c
    $(CC) -c -o $@ $<

优雅的方法是使用vpath指令,告诉 Make 在哪里搜索源文件:

vpath %.c config

推荐阅读