我试图在makefile中使用setenv变量,但当我执行make文件时,它给出了setenv: command not found。
我怎么使用它?
实际上,我想运行一个设置多个环境变量的shell脚本。
由于列表非常庞大,除了使用脚本之外,我没有其他选择。我不能像abcd:= /xx/yy/zz那样手动设置它们
请提个建议。
附注:同样的命令setenv xxx yyy在shell中运行得很好,当我在makefile中直接使用或在makefile中使用带有此命令的脚本时,它会失败。‘
发布于 2011-10-18 19:24:02
为什么不使用export命令?
发布于 2011-10-18 19:59:49
运行脚本来设置环境变量将不起作用,因为shell运行一个单独的进程&不会反映在您当前的shell中。您需要对shell脚本执行source命令。您可以根据您的外壳使用source或.。下面是一个示例供您参考,其中setvar.sh设置了一个变量并由print.sh打印;在Makefile (mkfile)中,setvar.sh是使用.编写的
$ cat setvar.sh
export TEST=ABC
$ cat print.sh
echo $TEST
$ cat mkfile
test:
. ./setvar.sh && ./print.sh
.SILENT:test
$ make -f mkfile
ABC你也可以通过include I来打个比方,
$ cat mkfile2
include setvar.sh
test:
./print.sh
.SILENT:test
$ make -f mkfile2
ABC希望这能有所帮助!
发布于 2011-10-18 19:59:33
看
make -e https://stackoverflow.com/questions/7806418
复制相似问题