首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在makefile中使用setenv

在makefile中使用setenv
EN

Stack Overflow用户
提问于 2011-10-18 19:22:13
回答 5查看 10.8K关注 0票数 0

我试图在makefile中使用setenv变量,但当我执行make文件时,它给出了setenv: command not found。

我怎么使用它?

实际上,我想运行一个设置多个环境变量的shell脚本。

由于列表非常庞大,除了使用脚本之外,我没有其他选择。我不能像abcd:= /xx/yy/zz那样手动设置它们

请提个建议。

附注:同样的命令setenv xxx yyy在shell中运行得很好,当我在makefile中直接使用或在makefile中使用带有此命令的脚本时,它会失败。‘

EN

回答 5

Stack Overflow用户

发布于 2011-10-18 19:24:02

为什么不使用export命令?

票数 4
EN

Stack Overflow用户

发布于 2011-10-18 19:59:49

运行脚本来设置环境变量将不起作用,因为shell运行一个单独的进程&不会反映在您当前的shell中。您需要对shell脚本执行source命令。您可以根据您的外壳使用source.。下面是一个示例供您参考,其中setvar.sh设置了一个变量并由print.sh打印;在Makefile (mkfile)中,setvar.sh是使用.编写的

代码语言:javascript
复制
$ 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来打个比方,

代码语言:javascript
复制
$ cat mkfile2 
include setvar.sh
test:
    ./print.sh

.SILENT:test
$ make -f mkfile2
ABC

希望这能有所帮助!

票数 3
EN

Stack Overflow用户

发布于 2011-10-18 19:59:33

  • make -e
  • Communicating Variables to a Sub-make
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7806418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档