gpt4 book ai didi

makefile - makefile 先决条件列表中的分号是什么?

转载 作者:行者123 更新时间:2023-12-05 01:39:35 31 4
gpt4 key购买 nike

在 GNU make 手册的早期部分之一,Section 3.7 , 有一个 makefile 配方的大纲

immediate : immediate ; deferred
deferred

在先决条件列表中涉及分号。所以一个有效的食谱可能是

output.o : output.c header1.h header2.h; header3.h
gcc output.c -o output.o

分号有什么用?由于上述部分讨论了立即和延迟变量扩展,我猜测分号之前的部分会立即扩展,而分号部分只有在执行目标后才会扩展。有人可以确认吗?

我在 SO 上发现了类似的问题,但那些存在特殊情况并且他们接受的答案似乎都没有明白这一点。

最佳答案

4.2 Rule Syntax 中所述:

In general, a rule looks like this:

targets : prerequisites
recipe

or like this:

targets : prerequisites ; recipe
recipe

[...]

The recipe lines start with a tab character (or the first character in the value of the .RECIPEPREFIX variable; see Special Variables). The first recipe line may appear on the line after the prerequisites, with a tab character, or may appear on the same line, with a semicolon. Either way, the effect is the same.

(强调我的。)

你的例子等同于

output.o : output.c header1.h header2.h
header3.h
gcc output.c -o output.o

关于makefile - makefile 先决条件列表中的分号是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58038712/

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