为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
一只斗牛犬 2021-11-29 16:06:43
如何编写一个make目标来监视特定文件夹中的任何文件更改并执行其他一些 make 目标来编译文件?我正在寻找一种方法,它可以在对工具的依赖最小的情况下做到这一点,make以保持简单。
查看完整描述

2 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

您可以使用entr并调整Makefile与此类似的


.DEFAULT_GOAL := run

SHELL := /bin/bash


run:

    clear && \                    

    cp one.txt two.txt && \       

    rm -f _* *.l2m *.o2m && \     

    Ganlib < testgan2.x2m


watch:

    while sleep 1 ; do find . -name '*.x2m' -o -name '*.c2m' \

    | entr -d make -f ./Makefile ; done


.PHONY: run watch 


其次是


$ make watch


查看完整回答
反对 回复 2021-11-29
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

对于观看,您可以使用fswatch。(这个程序还有一个 go 版本,可能更容易安装:fswatch)例如:

fswatch -ext cpp,c,h make -f Makefile

每当您更改cpp,ch文件时,它都会再次运行 make。

Make 可能会有点慢,所以我倾向于使用ninja来代替,但这实际上取决于您的项目的大小。

另一种选择是tup,它内置了watch

tup monitor

但是,遗憾的是,仅适用于 linux。


查看完整回答
反对 回复 2021-11-29
  • 2 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信