【发布时间】: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