我对在 Windows 上使用 GNU Make 很感兴趣。我使用模式规则创建了一个小型 Makefile:
all: abcd.o
%.o : %.c
echo hi
然而,当我试图做到这一切时,
D:\test>"C:\Program Files (x86)\GnuWin32\bin\make" -f Makefile.txt
make: *** No rule to make target `abcd.o', needed by `all'. Stop.
我从安装 GNU Make这个存储库。 这文档我发现描述了这个 Makefile 应该可以工作。
D:\test>"C:\Program Files (x86)\GnuWin32\bin\make" --version
GNU Make 3.81
如何在 Windows 上的 GNU Makefile 中使用模式规则?
答案1
make:*** 没有规则来制作abcd.o', needed by
全部目标。停止。
您的 makefile 包含:
all: abcd.o
%.o : %.c
echo hi
这仅当文件abcd.c
存在或可以创建(通过另一条规则)时才会起作用。
因此,形式为
%.o : %.c ; recipe…
指定如何创建文件号,以另一个文件 nc 为前提,前提是 nc 存在或可以制作。
进一步阅读
- 简单的 Makefile 教程- 包含一些简单完整的 makefile 示例。
答案2
文件 abcd.c 需要存在。