2017-10-12 94 views
0

我正在嘗試使用目標文件名=文件夾名稱創建Makefile。 而不是硬編碼它,我使用的功能在Makefile中使用變量操作

FILE=$(PWD##*/) 

我也試過 FILE=$(echo PWD##*/)FILE=$(echo $(PWD##*/))。 但我收到一個錯誤:未終止的變量引用。 我知道在Makefile中做這樣的變量操作是很困難的。有沒有解決辦法?

感謝

+0

要低於澄清安德魯·吉利斯的回答,makefile文件不是shell腳本,並且在分配makefile變量時不能直接使用shell腳本語法。 '## * /'語法適用於_shell scripts_中的_shell_變量。它不會在makefile中使用make變量。 – MadScientist

回答

1
這樣

設置文件應該工作:

FILE = $(notdir $(PWD)) 

另一種方法是調出殼裏做相同的:

FILE = $(shell basename \${PWD}) 
+0

它工作的第一次,但當我試圖重新運行它:它說循環引用,依賴關係下降。 – Learner27

+0

通常意味着目標具有依賴關係,並且依賴關係具有對目標的依賴關係 – gammazero

+0

換言之,該錯誤與此問題無關,並且您沒有顯示可幫助診斷它的任何部分makefile。你應該嘗試自己弄清楚,如果你不能,用make的錯誤消息中引用的行相關的行的更多細節打開一個新的問題。 – MadScientist