2013-06-26 138 views
3

如果我在控制台输入:CMAKE在哪里获取环境变量?

$ 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() 

环境var未定义。如果我定义控制台制造的ENV VAR:

$ export COCOS_ROOT=/path/to/cocos 

然后脚本正确与cocos2D上设置路径。

我的问题是:我需要在哪里定义由cmake发现的env变量?

感谢

回答

6

在你.bashrc文件,你需要导出COCOS_ROOT变量,否则它不会传递到子进程:

export COCOS_ROOT=/path/to/cocos 

,而不是

COCOS_ROOT=/path/to/cocos 

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

+0

你为什么要强调命令有输出和不输出的区别?在这个问题,它已经正确地提出... – Antonio

+0

我的意思是你应该在你的bashrc中使用导出。 – Guillaume

+0

为什么地球上你不应该? :) – Antonio