這裏就是我想要做的事:
EXTRA_INCLUDE_PATHS = ../dir1/path with spaces/ \
../dir2/other path with spaces/
CPPFLAGS += $(addprefix -I,$(EXTRA_INCLUDE_PATHS))
我想「-I../dir1/path with spaces/ […]
」,但我得到的時候:「-I../dir/path -Iwith -Ispaces/ […]
」。
我如何在addprefix
的空格中空格?我試過這樣做,但它產生相同的結果:
space =
space +=
#produces 「-Isome -Ipath」
CPPFLAGS += $(addprefix -I,some$(space)path)
即使假設你這樣做了,在命令行上使用標誌也是行不通的,除非你避開變量中的空格或者引用了變量中的「words」,所以這看起來不太有用, 。 – 2015-04-01 20:00:43
簡短的回答是,你不能。一般來說,make不能很好地處理文件名或空格在其中的路徑。最好避免它們。在這種情況下,您可以通過將'-I'選項直接放入'EXTRA_INCLUDE_PATHS'變量(以及引號,用於shell)來獲得所需內容。但是沒有辦法從GNU make的函數中得到你想要的。 – MadScientist 2015-04-02 00:12:42