Visual Studio make文件中的$〈和$@是什么意思

nr9pn0ug  于 2022-12-30  发布在  其他
关注(0)|答案(2)|浏览(230)

我在WDK构建环境的makefile中发现了这些伪变量名,这些变量引用了什么?我想通过搜索引擎很难找到答案,因为它们很特殊。

4ioopgfo

4ioopgfo1#

这些是自动变量:
$@规则目标的文件名。如果目标是归档成员,则'$@'是归档文件的名称。在具有多个目标的模式规则中(请参阅模式规则简介),'$@'是导致规则配方运行的目标的名称。
$〈第一个先决条件的名称。如果目标从隐式规则中获得配方,则这将是隐式规则添加的第一个先决条件(请参阅隐式规则)。
它们用于构建可应用于不同目标的规则,这样就不需要为必须处理的每个文件重复相同的规则...
PS:为了找到答案,我首先查找GNU make的'all documentation on a single page',然后使用浏览器的搜索功能...

ttvkxqim

ttvkxqim2#

在Makefile中,$<$@是执行规则时由make实用程序展开的特殊符号。
$<是规则的第一个先决条件(即输入文件)的名称。例如,如果规则为output: input1 input2,则$<将扩展为input1
$@是规则目标(即输出文件)的名称。在上例中,$@将扩展为output
下面是如何在Makefile中使用这些符号的示例:

  1. output: input1 input2
  2. command1 $< $@

在本例中,make实用程序将$<扩展为input1,将$@扩展为output,因此实际执行的命令将是command1 input1 output
这些符号可用于规则中的任何命令,而不仅仅是第一个命令。例如:

  1. output: input1 input2
  2. command1 $<
  3. command2 $@
  4. command3 $< $@

在这种情况下,make实用程序将按如下方式展开符号:
command1 $<将扩展为command1 input1
command2 $@将扩展为command2 output
command3 $< $@将扩展为command3 input1 output

展开查看全部

相关问题