的Makefile文件:Makefile中尾随空白变量
#there is a whitespace after "/my/path/to"
FOO = "/my/path/to"
BAR = "dir"
INCLUDE_DIRS = $(FOO)/$(BAR) "/another/path"
INCLUDES = $(foreach dir,$(INCLUDE_DIRS),-I$(dir))
all:
@echo $(INCLUDES)
使用GNU使我想到我的$(含)为:
-I/my/path/to/dir -I/another/path
然而,如果线路
FOO = "/my/path/to"
以空白结尾(这是一个常见的“错误”),变量FOO将包含空格,并且生成的INCLUDES将包含三个目录(所述两个第一beeing第一个分裂):
-I/my/path/to -I/dir -I/another/path
我发现的唯一的解决方案是使用带功能:
FOO = $(strip "/my/path/to")
但是不是有更自然的语法,或以任何方式避免这个陷阱?
我喜欢这个解决方案,将使用它,谢谢! – user744629 2012-02-03 14:17:21