是否有基于类似inotify机制的构建工具
在使用普通旧
make
的相对较大的项目中,甚至在没有任何改变的情况下构建项目需要几十秒。特别是对于make -C
的许多执行,它们具有新的进程开销。
这个问题的显而易见的解决方案是基于OS的类似inotify
特征的构建工具。它会在某个文件发生变化时查看,并根据该列表单独编译该文件。
那里有这样的机器吗?开源项目的奖励积分。
没有找到相关结果
已邀请:
5 个回复
骚瓤
孝铜差
the花了这么长时间的文件。在这里检查这是一个小的systemtap脚本,我写了来测量
文件所需的时间:
然后像这样使用它:
我运行它的项目有4593个源文件,需要~27毫秒(26952500nsec以上)才能生成所有文件以及相应的.d文件。我虽然使用非递归make。
嘘崇蔡对
https://github.com/alandipert/fswatch 以下是如何使用fswatch来更改文件,然后在检测到任何文件时运行make
您可以在makefile中运行fswatch,如下所示:
(当然,$(FILE)是在makefile中定义的。) make现在可以监视文件中的更改,如下所示:
你可以看到这样的另一个文件:
阀傻
来调用
。 作为旁注,递归使得规模严重并且容易出错。喜欢非递归制作。
葛瞎说漓
命令)引起的 - 它可能是 - 那么你应该减少递归。 (您可以尝试使用自己的条件逻辑来决定是否执行
,但这将是一个非常不优雅的解决方案。) 粗略地说,如果你的makefile看起来像这样
还有这个
你可以改成它们:
有许多细节可以正确,但现在如果
没有改变,
规则将不会运行。