【问题标题】:arm-non-eabi-ld: Argument list too longarm-none-eabi-ld:参数列表太长
【发布时间】:2019-03-04 00:35:04
【问题描述】:

我正在尝试解决我的项目的问题。简而言之,我的 makefile 中有一个变量,其中包含要链接的 .o 文件的名称。变量太大,现在导致 Argument list too long 错误。我的 makefile 中有问题的行是:

@arm-none-eabi-ld -T layout.ld -o @$ $^ 问题是变量 $^ 扩展太大,我收到一条错误消息,指出“arm-none-eabi-ld: Argument list too long”。

我试图解决这个问题的方法是将参数作为文件传递,但我不确定如何。 我试过的是:

@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

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

【问题讨论】:

  • 错字,意为:@arm-none-eabi-ld -T layout.ld -o @$ | xargs `cat $^` 我尝试转义反引号...
  • 我修正了格式。处理这个问题的正确方法是在代码周围添加更多反引号:The command is ``cat `ls docs` footer.txt``.。如果内容的第一个或最后一个字符是反引号,如您的情况,则需要添加额外的空格或其他内容。

标签: gcc makefile command-line-arguments


【解决方案1】:

我找到了解决办法:

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

【讨论】:

    猜你喜欢
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多