0
$(BUILDDIR)/%.check: $(SRCDIR)/%.c
$(eval pragma := $(shell grep "pragma" $<))
@echo $<: $(pragma)
$(編譯)變量始終是一個空字符串,即使是含有的#pragma的Makefile殼的grep
什麼是錯誤的文件?
$(BUILDDIR)/%.check: $(SRCDIR)/%.c
$(eval pragma := $(shell grep "pragma" $<))
@echo $<: $(pragma)
$(編譯)變量始終是一個空字符串,即使是含有的#pragma的Makefile殼的grep
什麼是錯誤的文件?
有幾件事情是錯誤的。
1)您正在將Make語法放入命令中,該命令應該在shell語法中。
2)您正試圖在一個命令中設置一個變量,並在另一個命令中使用它(因爲每個命令都在其自己的子shell中運行,所以這不起作用)。
3)你已經嘗試了一個複雜的命令,而沒有測試它的簡單組件(它會告訴你有什麼錯誤)。
如果你想要做的是顯示#pragma
線,這將做到這一點:
$(BUILDDIR)/%.check: $(SRCDIR)/%.c
@echo $<: `grep "pragma" $<`
如果你想要做的事與線條更加複雜,告訴我們它是什麼,我們會看到如果我們能幫忙。
我需要停止並顯示包含#pragma文件的錯誤消息 – user1528805 2012-07-16 13:44:26
那麼'if grep -q pragma $ <然後回顯「發現雜注!」;假;其他:; fi' – 2012-07-16 13:54:00
@NormanGray,你打敗了我。 – Beta 2012-07-16 15:40:42