2017-02-18 79 views
0

下面是我的一個makefile中兩個規則的簡化版本。makefile切斷傳遞給規則的變量

Link: 
    ld $(SONG_OBJ) -o Songs/$(FILE)/$(FILE) 

Song: 
    $(eval SONG_OBJ = $(wildcard Songs/$(FILE)/Build/*.o)) 
    make Link FILE=$(FILE) SONG_OBJ=$(SONG_OBJ) 

因此,SONG_OBJ包含多個由空格分隔的字符串。但是,歌曲規則似乎只發送第一個字符串,即它將第一個空白後的SONG_OBJ中的任何內容切斷到鏈接規則。有關如何解決這個問題的任何建議?謝謝您的幫助。

make Link FILE=$(FILE) SONG_OBJ="$(SONG_OBJ)" 

因爲它的立場,SONG_OBJ被設置爲第一個字,而另一名被簡單地傳遞到make隨着越來越多的目標是:

回答

0

您在make遞歸調用需要大約SONG_OBJ=$(SONG_OBJ)雙引號建立(除了Link)。