2017-06-01 35 views
0

我想寫到一個文件裏:防止變量擴展在生成文件

-MF"$(@:%.o=%.d)" -MT"$(@)" -o "[email protected]" "$<" 

但是當我贊同這個到一個文件中,與"",或'',變量將擴大,我怎麼能防止膨脹並按原樣寫入?

P.S.在makefile中調用echo '-MF"$(@:%.o=%.d)" -MT"$(@)" -o "[email protected]" "$<"'

在我的makefile

,我讓說,我有:

all: 
    echo '-MF"$(@:%.o=%.d)" -MT"$(@)" -o "[email protected]" "$<"' > $file 

我在文件中看到的是

-MF 「所有」 -MT 「所有」 O 「全部」「 「

+0

單引號不會擴展參數擴展,你試過'echo'-MF「$(@:%。o =%。d)」-MT「$(@)」-o「$ @」「$ <"' >文件' – Inian

+0

我做了,它確實擴展了它們 – apramc

+0

@Inian:我在makefile中運行這個, – apramc

回答

1

使用$$把一個美元符號成一個Makefile配方

all: 
    echo '-MF"$$(@:%.o=%.d)" -MT"$$(@)" -o "[email protected]" "$$<"' > $file