我正在嘗試使用目標文件名=文件夾名稱創建Makefile。 而不是硬編碼它,我使用的功能在Makefile中使用變量操作
FILE=$(PWD##*/)
我也試過 FILE=$(echo PWD##*/)
和FILE=$(echo $(PWD##*/))
。 但我收到一個錯誤:未終止的變量引用。 我知道在Makefile中做這樣的變量操作是很困難的。有沒有解決辦法?
感謝
我正在嘗試使用目標文件名=文件夾名稱創建Makefile。 而不是硬編碼它,我使用的功能在Makefile中使用變量操作
FILE=$(PWD##*/)
我也試過 FILE=$(echo PWD##*/)
和FILE=$(echo $(PWD##*/))
。 但我收到一個錯誤:未終止的變量引用。 我知道在Makefile中做這樣的變量操作是很困難的。有沒有解決辦法?
感謝
設置文件應該工作:
FILE = $(notdir $(PWD))
另一種方法是調出殼裏做相同的:
FILE = $(shell basename \${PWD})
它工作的第一次,但當我試圖重新運行它:它說循環引用,依賴關係下降。 – Learner27
通常意味着目標具有依賴關係,並且依賴關係具有對目標的依賴關係 – gammazero
換言之,該錯誤與此問題無關,並且您沒有顯示可幫助診斷它的任何部分makefile。你應該嘗試自己弄清楚,如果你不能,用make的錯誤消息中引用的行相關的行的更多細節打開一個新的問題。 – MadScientist
要低於澄清安德魯·吉利斯的回答,makefile文件不是shell腳本,並且在分配makefile變量時不能直接使用shell腳本語法。 '## * /'語法適用於_shell scripts_中的_shell_變量。它不會在makefile中使用make變量。 – MadScientist