【发布时间】:2020-09-23 11:47:36
【问题描述】:
我有一个共同的目标,就是在 Makefile 中设置一堆类似这样的环境变量
# file common.mk
setup :
export LD_LIBRARY_PATH=${MY_HOME}/LIBS:${LD_LIBRARY_PATH}
export MY_VERSION=2.2
...
现在我想在所有 make 目标中使用这些变量
#file Makefile
include ${MY_RUN_DIR}/common.mk
run : setup
# export all the variables
# do domething
现在当我执行make run 时,我看不到正在设置的变量。这是因为所有变量都仅在“设置”目标中设置。
我有 100 多个 Makefile,我必须在其中添加所有导出变量,我宁愿只添加一行来导出所有变量。
如何将变量从一个目标导出到我想要的所有目标?
【问题讨论】:
-
只是为了指出显而易见的,变量甚至不会导出到
setup目标内,除非您使用.ONESHELL或类似的。变量分别在 一个单独的 shell 调用中导出,当该 shell 终止并执行下一个配方行时,它们不再存在。这是一个常见的初学者错误和常见的常见问题解答;见stackoverflow.com/questions/42157800/…