對 makefile 中 eval 函數的學習體會


上例子

define func
foo:
    @echo "at foo"
endef

all: foo
    @echo "final"

$(eval $(call func, foo,abc.c))

先不整那些函數參數傳遞之類的幺蛾子,做一個個簡單的例子,

運行 make

結果是:

at foo

final

然后再變化下:

define func
$1:
    @echo "at foo"
endef

all: foo
    @echo "final"

$(eval $(call func, foo,abc.c))

這次,傳遞 foo 作為 $1,得到結果相同。

基本上可以看到,eval 函數是具備一定的運行時刻改變makefile 能力。

結束


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM