CMAKE从哪里获取环境变量?

4

如果我在控制台中输入:

$ echo $COCOS_ROOT

因为我在我的.bashrc文件中定义了这个变量,所以我得到了正确的路径。然而,当我执行这段代码时,

SET(COCOS_HOME "$ENV{COCOS_ROOT}")
if (COCOS_HOME)
    message( STATUS "COCOS2D installed in" ${COCOS_HOME})
else()
    message( WARNING "COCOS2D is undefined")
endif()

环境变量未定义。如果我在控制台中定义了ENV变量,如下所示:
$ export COCOS_ROOT=/path/to/cocos

然后将脚本正确设置为cocos2D路径。

我的问题是:我需要在哪里定义环境变量,以便被cmake找到?

谢谢

1个回答

6
在您的.bashrc文件中,您需要导出COCOS_ROOT变量,否则它不会传递给子进程:
export COCOS_ROOT=/path/to/cocos

而不是

COCOS_ROOT=/path/to/cocos

因为在你的shell启动时会加载.bashrc文件,所以你可以在shell中使用COCO_ROOT。


你为什么要强调带和不带export命令的区别?问题中已经表述正确了... - Antonio
我的意思是你也应该在你的bashrc中使用export。 - Guillaume
为什么你不能这样做呢? :) - Antonio
即使不导出变量,它在 shell 中也会获得正确的值,只是不会传递给子进程。我相信这就是问题所在。 - Guillaume

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接