为什么不能拿起环境变量

时间:2016-04-05 21:31:16

标签: c++ linux shell makefile

我已经测试了一些make,并且shell中的环境变量问题不在Make文件中。我想知道我的设置有什么问题。我在我的mac os,redhat和Ubuntu上测试过。他们都有相同的行为。我想知道有人可以帮忙解决这个问题。

GNU Make 4.1

这是我最简单的制作文件:

ifdef $(HOME)
 $(info $$HOME is $(HOME))
else
 $(info $$HOME is undefined)
endif

all :
    echo do nothing

在终端输入make时我得到了

$HOME is undefined
echo do nothing
do nothing

echo $ HOME

/Users/myusername

以下是make的手册[{3}}

中的定义

make中的变量可以来自运行make的环境。在启动时查看的每个环境变量都将转换为具有相同名称和值的make变量。但是makefile中的显式赋值或命令参数会覆盖环境。

1 个答案:

答案 0 :(得分:3)

我相信你不应该在ifdef块中获得HOME变量的值。 GNU make会将其评估为

var customController = MyApp.UICollectionViewController() //your custom class
var uikitController = UIKit.UICollectionViewController() //class from UIKit

显然没有被定义为变量。请尝试以下方法:

ifdef /your/home/directory