【发布时间】:2021-09-30 14:22:47
【问题描述】:
当尝试使用 make 文件运行 go 程序时,以下内容不起作用。 我尝试通过设置(导出)1条语句来显式设置env变量,另一条语句在我读取env变量的地方运行我的go代码。这不起作用。
test:
export Sample="Help"
go run main.go
与上面相同,在 make 文件中实现如下,我的 go 代码能够读取 env 变量。
test:
Sample="Help" go run main.go
任何帮助将不胜感激。
【问题讨论】:
-
这能回答你的问题吗? Makefile variable initialization and export
-
@JimB 我认为问题在于 OP 不知道配方的行是在不同的 shell 中执行的,而不是 make 变量和环境变量之间的关系。如果我是对的,它不是您找到的问题的重复项(但它可能是另一个问题的重复项)。
-
配方的行在不同的 shell 中执行。所以你的
export命令根本没有效果。通过在第一行末尾添加&& \来连接这两行:export Sample="Help" && \。 Make 会将其视为单行配方并将其传递给单个 shell。注意:反斜杠必须是该行的最后一个字符。没有尾随空格(我必须在反斜杠之后放置空格,但这只是为了 Markdown 正确渲染)。
标签: makefile