如何在文件更改时自动执行make目标?

如何编写一个make目标来监视特定文件夹中的任何文件更改并执行其他一些 make 目标来编译文件?我正在寻找一种方法,它可以在对工具的依赖最小的情况下做到这一点,make以保持简单。


一只斗牛犬
浏览 195回答 2
2回答

紫衣仙女

您可以使用entr并调整Makefile与此类似的.DEFAULT_GOAL := runSHELL := /bin/bashrun:&nbsp; &nbsp; clear && \&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; cp one.txt two.txt && \&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; rm -f _* *.l2m *.o2m && \&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; Ganlib < testgan2.x2mwatch:&nbsp; &nbsp; while sleep 1 ; do find . -name '*.x2m' -o -name '*.c2m' \&nbsp; &nbsp; | entr -d make -f ./Makefile ; done.PHONY: run watch&nbsp;其次是$ make watch

芜湖不芜

对于观看,您可以使用fswatch。(这个程序还有一个 go 版本,可能更容易安装:fswatch)例如:fswatch&nbsp;-ext&nbsp;cpp,c,h&nbsp;make&nbsp;-f&nbsp;Makefile每当您更改cpp,c或h文件时,它都会再次运行 make。Make 可能会有点慢,所以我倾向于使用ninja来代替,但这实际上取决于您的项目的大小。另一种选择是tup,它内置了watch:tup&nbsp;monitor但是,遗憾的是,仅适用于 linux。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go