在制作

时间:2015-07-30 14:27:25

标签: linux cmake makefile filesystems strace

我正在处理一个CMake项目,当我运行"make"时,无论是否触摸系统中的任何文件,都会触发其中一个目标的重建。我设法发现这是因为当我运行"make"时,目标所依赖的文件之一以某种方式被删除,因此系统注册它需要重建。我尝试在此文件上设置"chattr +i"以使其不可变,实际上,设置此标志后,不会触发目标的重建,尽管删除尝试也没有错误。但我想我可以肯定这是罪魁祸首。

所以现在我的问题。如何确定哪个脚本或makefile实际上正在删除此文件?这是一个很大的项目,有很多脚本和子makefile,可能在构建过程中的不同时间运行,所以我很难手动发现这是做什么的。我可以从文件系统方面提取一些很好的技巧来帮助吗?我尝试做"strace make",但解析输出我似乎无法找到出现在任何地方的文件名。我不是strace专家,所以也许文件是通过一些标识符而不是文件名删除的?或者我可能不会产生衍生过程?

0 个答案:

没有答案