如何在makefile中引用字符串?最佳实践是什么?
以下是否为正确的引用方式?
$(warning $(shell ls -ld "$(CURDIR)" ) )
我熟悉Bash,在其中通常需要对变量进行引用以允许嵌入空格。在makefile中是否也需要这样做呢?
使用字符串如何进行赋值语句?
vara := "$(CURDIR)"
varb := $(CURDIR)
varc := /home/me/source
vard := "/home/me/source"
等号后面的空格怎么办?
$(VARX)
这样的“创建变量”和$${VARZ}
这样的“shell变量”的区别 - 请注意双重美元符号$$
是make用来区分它们的。因此,在需要将shell变量作为变量传递给命令而不进行扩展时,您可能需要使用单引号。例如:将$ORIGIN
传递给链接器,则使用带有单引号的cc -Wl,-rpath='$${ORIGIN}' -shared -fPIC -Wall $(SRC) -o $(DIR)/$(LIB)
,以防止在shell中扩展它。 - Mark Mikofski$ORIGIN
的答案,其中使用了单引号和双美元符号,但-Wl,option
的语法与我的示例略有不同。 - Mark Mikofski