我正在尝试解决我的项目中的问题。简而言之,我的makefile中有一个变量,其中包含要链接的.o文件的名称。变量过大,现在导致参数列表过长的错误。我的makefile中令人反感的行显示为:
@arm-none-eabi-ld -T layout.ld -o @$ $^
问题是变量$^
扩展得太大,并且我收到一条错误消息,指出“ arm-none-eabi-ld:参数列表太长”。
我要解决的问题是将参数作为文件传递,但是我不确定如何传递。 我尝试过的是:
@arm-none-eabi-ld -T layout.ld -o @$ <$^
@arm-none-eabi-ld -T layout.ld -o @$ | xargs `cat $^`
并尝试:
@echo $^ >temp.txt
@arm-none-eabi-ld -T layout.ld -o @$ <temp.txt
我认为最后一个有潜力,但是说“没有输入文件”。
答案 0 :(得分:0)
我找到了解决方法:
@echo "INPUT($^)" > $(TEMP_LD)
@$(LD) $(LDFLAGS) -o $@ -T $(TEMP_LD)