我已经测试了一些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中的显式赋值或命令参数会覆盖环境。
答案 0 :(得分:3)
我相信你不应该在ifdef块中获得HOME变量的值。 GNU make会将其评估为
var customController = MyApp.UICollectionViewController() //your custom class
var uikitController = UIKit.UICollectionViewController() //class from UIKit
显然没有被定义为变量。请尝试以下方法:
ifdef /your/home/directory