gpt4 book ai didi

c - Makefile 依赖被忽略

转载 作者:太空宇宙 更新时间:2023-11-04 03:41:57 24 4
gpt4 key购买 nike

我创建了一个简单的 makefile 来理解它们如何工作背后的基本思想,但它没有按我预期的方式执行。请看以下内容:

test:  test.c
gcc -o test test.c

我的理解是这应该只在 test.c 文件发生变化时运行。问题是无论是否有更改,它每次都会运行。

我注意到当我使用任意目标名称时会发生这种情况。如果我将目标名称设为实际文件名,例如“test.exe”,它可以正常工作,但我看到的所有教程都显示了使用任意目标名称的依赖关系。知道为什么会发生这种情况吗?

最佳答案

在Windows下,Make会自动给生成的程序加上后缀.exe

由于目标的名称与规则的结果不同,Make 尝试重新生成它。

你应该这样写你的makefile:

EXE := test.exe

$(EXE): test.c
gcc -o $@ $^

如果您需要可移植性并且不想重写规则,请使用:

EXE := test

if ($(OS),Windows_NT)
EXE := $(EXE).exe
endif

$(EXE): test.c
gcc -o $@ $^

关于c - Makefile 依赖被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27769911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com