相关疑难解决方法(0)

如何在生产配方中处理极长的文件列表?

因为GNUmake允许变量与内存允许的一样大,所以构建大量依赖列表没有问题.但是,如果要在配方中实际使用这些文件列表(用于构建目标的shell命令序列),则会遇到问题:命令可能超出shell的命令行长度限制,从而产生错误,例如"参数"列表太长了".

例如,假设我想连接列表中包含的几个文件$(INPUTS)以生成文件combined.txt.通常,我可以使用:

combined.txt: $(INPUTS)
        cat $^ > $@
Run Code Online (Sandbox Code Playgroud)

但是,如果$(INPUTS)包含数千个文件,就像在我的情况下那样,调用cat太长并且失败.有没有办法解决这个问题?可以安全地假设存在一些与一个巨大命令具有相同行为的命令序列 - 在这种情况下,一系列cat命令(每个输入文件一个)>>用于追加combined.txt将起作用.但是如何make说服生成这些命令呢?

makefile

9
推荐指数
1
解决办法
2897
查看次数

标签 统计

makefile ×1