${COMPILE_PATH}/%.c.d:%.cpp
$(CC) $(CFLAGS) ${CFLAGS_NDBG} -MM -E $^ > [email protected]
@sed 's/.*\.o/$(subst /,\/, $(dir [email protected]))&/g' [email protected] >[email protected]
@mv [email protected] [email protected]
$(subst /,\/, $(dir [email protected]))
,我不明白這個說法,subst
的第二個參數是\/
,爲什麼?將/
更改爲\/
?這個Makefile語句的含義是什麼?
感謝,爲什麼'subst'的第一個參數'/'不是由\前綴? –
因爲在這種情況下'/'不是特殊的,所以它不需要被轉義。這是在'$(dir $ @)'的值中用'\ /'替換'/'的。 –
明白了,再次感謝 –