sig*_*ice 10 macros gnu makefile
在我的Makefile中调用GREP的两种方式有什么不同吗?任何理由我应该使用其中一个?两者似乎都产生了相同的结果.
define GREP
$(word 3,$(shell echo "#define FOO 0xfff00100"))
endef
all:
@echo $(GREP)
@echo $(call GREP)
Run Code Online (Sandbox Code Playgroud)
Eri*_*ski 16
你使用它的方式,没有区别.但是,如果您的GREP宏是一个带参数的函数,则必须使用$(call)将参数传递给它.例如:
define GREP
$(shell grep $1 $2)
endef
FOO:=$(call GREP,abc,words.txt)
Run Code Online (Sandbox Code Playgroud)
这导致$1被替换为"abc"和$2"words.txt".
有关用户定义函数的GNU make手册,请参阅:http: //www.gnu.org/software/make/manual/make.html#Call-Function
希望这可以帮助,
埃里克·梅尔斯基
| 归档时间: |
|
| 查看次数: |
13874 次 |
| 最近记录: |