makefile - Makefile 规则匹配
问题描述
在我的 gnu-make-3.81 Makefile 中,如果没有 .c 源文件,我希望从 .s 文件生成 .o 文件。因此,我定义了以下已简化的规则:
all::$(OBJS)
%.s: %.c
$(CC) $(CFLAGS) -o $@ -S $<
%.o: %.s
$(CC) $(CFLAGS) -o $@ -c $<
使用 gnu-make-3.81,当没有 .c 源文件时,它将使用第二条规则生成 .o 文件。但是使用 gnu-make-3.82 会出现错误:
make: *** No rule to make target `xxx.c', needed by `xxx.s'. Stop.
我怎样才能让它像 gnu-make-3.81 一样工作?
解决方案
推荐阅读
- javascript - 输入文件大小和内容不会在 macOS 上更新
- python - python:日志记录和单元测试
- keyboard - 如何在 Visual Studio Code 中的德语键盘上获得独立的反引号
- xcode - 如何将 SVG 转换为具有特定分辨率的 PDF?
- python - Python合并目录中的文件
- c# - 触摸滚动 UI 文本干扰背景地图
- google-apps-script - 提交时将表单数据链接到另一个表单
- python - 运行二进制可执行程序时的垃圾收集,该程序是使用 cython 从 python 转换的
- php - PHP:如何通过正则表达式从精确字符到字符串末尾删除
- java - 服务中的停车线程