Makefile을 :은 GNU와후행 공백
#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)
내가 내 $이 (를 포함합니다)가 될 것으로 예상합니다,
-I/my/path/to/dir -I/another/path
그러나 라인
FOO = "/my/path/to"
경우 (일반적으로 "실수"인) 공백 문자로 끝나고, 변수 FOO는 공백 문자를 포함 할 것이며 결과 INCLUDES는 세 개의 디렉토리 (스플릿 첫번째 beeing는 두 최초) I 발견
-I/my/path/to -I/dir -I/another/path
유일한 해결책 스트립 기능을 사용하는 것이다
FOO = $(strip "/my/path/to")
을하지만 자연 구가없는, 또는 임의의 방법으로 이 함정을 피하려면?
나는이 솔루션을 좋아하고 그것을 사용합니다, 감사합니다! – user744629