gpt4 book ai didi

c++ - 与要定义的规则序列相关的 Makefile 行为

转载 作者:行者123 更新时间:2023-11-28 08:06:24 25 4
gpt4 key购买 nike

我写了一个makefile,里面的命令顺序如下

    .PHONY: all clean distclean run
run : $(program_NAME)
./$(program_NAME) > output.txt #runs my program and stotre output in output.txt

all: $(program_NAME)

$(program_NAME): $(program_OBJS)
$(LINK.cc) $(program_OBJS) -o $(program_NAME)

如果我将其顺序更改为以下顺序,它对我不起作用:-

   .PHONY: all clean distclean run
$(program_NAME): $(program_OBJS)
$(LINK.cc) $(program_OBJS) -o $(program_NAME)

all: $(program_NAME)

run : $(program_NAME)
./$(program_NAME) > output.txt #runs my program and stotre output in output.txt

不会为我生成任何 output.txt。我的感觉是 run : 依赖于 $(program_NAME) 所以 $(program_NAME): $(program_OBJS)
$(LINK.cc) $(program_OBJS) -o $(program_NAME)s
应该在 makefile 中的 run : 之前。但反过来它工作得很好。 有人可以在这里点灯吗? (谢谢)

最佳答案

首先,您必须遵守 makefile 的缩进规则。规则执行的命令应以制表符开头。然后,考虑到出现在 makefile 中的第一条规则会在您键入 make 时自动执行。在第一种情况下,程序运行。要在 run 规则不是第一个的第二个 makefile 中获得相同的内容,您必须执行 make run

关于c++ - 与要定义的规则序列相关的 Makefile 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10217193/

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