我有那个在运行时设置一些变量的 Makefile,例如foo = bar
.
运行时make
,我想访问这些变量。
不幸的是echo $foo
,什么也没有返回。
有没有办法将变量从make
回导出到环境中?
我有那个在运行时设置一些变量的 Makefile,例如foo = bar
.
运行时make
,我想访问这些变量。
不幸的是echo $foo
,什么也没有返回。
有没有办法将变量从make
回导出到环境中?
您的问题有点令人困惑,但是根据主题行,我假设您的意思是,在您的 makefile 中设置了一个 make 变量,例如foo = bar
,然后在 make 运行并退出后,您想查看foo
调用 make 的 shell 中的值?
不,这是不可能的。它与 make 无关:任何类型的子进程都不可能修改其父进程的环境(在 POSIX 类型的系统中)。可以做到这一点的唯一方法是子进程生成设置变量的输出,并且父 shell 评估此输出。例如,如果您在 makefile 中编写了这样的规则:
show-foo: ; @echo 'foo=$(foo)'
然后你可以从你的 shell 运行它:
eval `make show-foo`
它会在你的shell中设置值。