【发布时间】:2013-03-20 06:53:47
【问题描述】:
我有一个关于在当前系统的 makefile 中执行复杂命令的查询。
我目前在 makefile 中使用 shell 命令来执行命令。但是我的命令失败了,因为它是许多命令的组合,并且执行会收集大量数据。 makefile 内容是这样的:
variable=$(shell ls -lart | grep name | cut -d/ -f2- )
但是,make 执行失败并导致 execvp 失败,因为文件列表很大,我需要解析所有文件。
请建议我解决此问题的任何方法。基本上我想执行一个复杂的命令并将该输出分配给我想稍后在程序中使用的 makefile 变量。
【问题讨论】:
-
在
execvp之后发布完整的错误消息,指出错误的原因/原因。 Make 通常不会在列出文件时遇到任何问题,无论文件多么庞大,因为您的命令只是将输出通过管道传输到grep,然后再传输到cut。我怀疑是某个命令的执行返回了错误。 -
感谢回复.. 错误如下.. make make: execvp: /bin/bash: Argument list too long make: *** [all] Error 127 bash >!v
-
1) 当你给它一个 small 列表(也许是 3 个文件)时,makefile 是否工作? 2) Make 是否在分配
variable时失败,或者在尝试使用variable时失败? 3)你如何使用variable? -
嗨,make 文件在赋值后就退出了...为了避免递归执行,我做了修改以使用 := 而不是 =...。我打算使用程序各个后续行中的变量。
-
你能告诉我们你如何使用
variable吗?
标签: gnu-make makefile multiple-makefiles