我有一个要求,我必须通过makefile运行python脚本。Python 脚本执行一些计算并返回一个值。我想在该生成文件变量中获取该值。我该怎么做?
我想要这样的东西:
mymakefile.mke
$output = python process.py
process.py
import os
def main():
value = "01.00.00"
return value
if __name__ == "__main__":
main()
如果您希望Make变量中的值,可以执行以下操作:
output := $(shell python process.py)
(请注意使用:=
而不是=
,因为如果你使用=
,Make 会在每次计算变量时运行脚本。
如果您希望配方中的 shell 变量中的值,请查看您将在shell的命令行上使用的语法,这可能是这样的:
output=$(python process.py); echo $output
但是在 makefile 规则中,您必须使用更多美元符号转义美元符号:
some_target:
output=$$(python process.py); echo $$output
请注意,由于配方的每一行都在自己的子 shell 中执行,因此变量的赋值和使用必须在同一行上;它不会存活到下一行。