makefile - gmake通配符函数不生成目标
问题描述
我在带有 MinGW 的 Windows 上使用 gmake。这是生成文件的片段:
SRCS = ..\path\to\srcs\*.c*
SRCS := $(wildcard $(SRCS))
OBJS := $(addsuffix .o,$(basename $(SRCS)))
$(OBJS) : $(SRCS)
$(CC) $(FLGAS) $(INCLUDES) "$<"
我得到以下信息:
gmake:***没有目标。停止。
SRCS
例如,如果我将 定义为 as ..\path\to\srcs\a.c
,它会起作用。我wildcard
是否以正确的方式使用?
我正在使用GNU Make 3.81
.
解决方案
make
不能很好地处理反斜杠;您需要将每个加倍,或者(更好)切换到正斜杠。
但是,您的配方会覆盖用于从损坏的 C 文件创建目标文件的内置规则。您的配方声称所有内容都$(OBJS)
将由具有所有$(SRCS)
as 依赖项的单个编译生成,但仅读取第一个($<
pro $^
)。最好只说你想要什么,make
然后从那里拿走它。
.PHONY: all
all: $(OBJS)
%.o: ../path/to/srcs/%.c
推荐阅读
- python - 如何限制每几秒刷新一次的页面中python beautifulsoup中抓取的数据
- c# - 使用 IIS 服务器部署和加载 DLL
- c++ - 严格的别名违规和内存地址
- mern - 为什么这个 mern 项目中的正则表达式标志无效?
- api - 无法得到会所 api/Complete api 的响应
- postgresql - 如何设置从本地 Postgresql DB 到 AWS RDS Postgresql DB 的复制
- list - 合并元组列表和整数列表
- python - 如何在python中提取标签href
- javascript - 从可滚动的图像列表中获取当前图像
- python - 使用时间间隔创建一个将产生数据帧的函数