我正在尝试在 Windows 上使用
make
命令(通过 choco 安装)。尝试使用 hello.c
运行简单的示例,其中仅包含“Hello, world”的打印。如果我只运行make hello
我将面临错误
cc hello.c -o hello
process_begin: CreateProcess(NULL, cc hello.c -o hello, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [<builtin>: hello] Error 2
所以我运行
make hello CC=gcc
,然后得到 gcc hello.c -o hello
。这里唯一的问题是我每次使用它时都会遇到它。 make 每次都会重新编译它,我不知道为什么。我尝试用 Makefile
创建 .PHONY: all
但没有结果。
更新: 生成文件
.PHONY: all
CC=gcc
您尚未在 Makefile 中定义任何目标,因此与此无关。将其更改为:
all: hello
hello: hello.c
这告诉 make 构建由
all
标签定义的所有目标。第二行告诉它 hello
取决于源文件 hello.c
。这应该确保它仅在文件的来源过期时才构建该文件。您可以通过在任何终端提示符下键入命令 make
来获取 man make
使用的所有指令的完整详细信息。