自动制作/构建(不是 GNU automake)

自动制作/构建(不是 GNU automake)

是否有任何实用程序可以监视文件变化并调用 GNU make?

或者,更一般地,当某个文件发生改变时定期调用一个命令?或者 Makefile 包含检查间隔?

答案1

当某个文件发生更改时定期调用命令

你可以这样做因克龙。为防止循环,请在源树之外构建,检查修改后的文件是否在源代码控制之下,或者使用 IN_NO_LOOP 选项。

答案2

什么平台?例如,您可以在 Bourne shell 或 bash 中调用以下行,每 60 秒运行一次 make。如果您的 Makefile 设计正确,则如果没有文件更改,它将退出而不更改任何内容:

while true ; do make ; sleep 60; done

如果您尝试在代码签入时对其进行编译,请查看 Paul Duvall、Addison Wesley 撰写的“持续集成”。其中概述了用于此目的的工具和技术。

答案3

是的,您可以通过多种方式来做到这一点,但您没有指定您的平台。

如果涉及 make 和 source,则应该涉及版本控制系统,并且现代 VCS 具有“提交钩子”,可以根据某些 VCS 活动触发构建。

仅根据“源已改变”随机尝试构建是产生无法工作的构建的一种非常容易的方法。

根据评论添加

我猜你是在 IDE 环境中长大的,并且养成了一些坏习惯。你应该花很多时间思考,花一点时间编码,并且很少编译。否则会生成草率的代码,这会令你和其他人不高兴,所以不要这样做。

此外,当您有值得存放到中央存储库的内容时,没有什么可以阻止您使用 Git 或 Mercurial 进行您自己的本地更改,并将内容推送到 Subversion,同时保护您免受自己造成的不良更改的影响。

然而,我强烈建议你不要将编译器用作错误检查器。如果你这么做,你将会成为一个糟糕的程序员。

答案4

您可以设置某种 cron 任务来按照指定的时间间隔执行此操作。

或者,编写一个使用轮询循环检查文件是否被修改的 shell 脚本。然后休眠或运行 make。您可以将其作为守护进程运行或在会话的后台运行。

相关内容