arm-non-eabi-ld:参数列表过长

时间:2019-03-04 00:35:04

标签: gcc makefile command-line-arguments

我正在尝试解决我的项目中的问题。简而言之,我的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

我认为最后一个有潜力,但是说“没有输入文件”。

1 个答案:

答案 0 :(得分:0)

我找到了解决方法:

@echo "INPUT($^)" > $(TEMP_LD)
@$(LD) $(LDFLAGS) -o $@ -T $(TEMP_LD)