以下是我的一个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规则只发送第一个字符串,即它在第一个空格之后切断SONG_OBJ中的任何内容到链接规则。有关如何解决此问题的任何建议?谢谢你的帮助。
答案 0 :(得分:0)
SONG_OBJ=$(SONG_OBJ)
的递归调用中,make
周围需要双引号:
make Link FILE=$(FILE) SONG_OBJ="$(SONG_OBJ)"
目前,SONG_OBJ
设置为第一个单词,其他名称只是传递给make
作为要构建的更多目标(除Link
之外)。