重新编译未更新的“Hello, world”

问题描述 投票:0回答:1

我正在尝试在 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
c gcc makefile
1个回答
0
投票

您尚未在 Makefile 中定义任何目标,因此与此无关。将其更改为:

all: hello

hello: hello.c

这告诉 make 构建由

all
标签定义的所有目标。第二行告诉它
hello
取决于源文件
hello.c
。这应该确保它仅在文件的来源过期时才构建该文件。您可以通过在任何终端提示符下键入命令
make
来获取
man make
使用的所有指令的完整详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.