如何为使用makefile生成的整个项目生成一个大的依赖关系图?

如何为使用makefile生成的整个项目生成一个大的依赖关系图?,第1张

概述如何为使用makefile生成的整个项目生成一个大的依赖关系图?

我有一个使用makefilebuild立的巨大项目。 在没有文件改变的情况下(即只是遍历项目并检查更新的文件),在项目的根目录下运行make需要20多分钟。

我想创build一个依赖映射,它会根据文件的变化告诉我需要运行“make”的目录。 我已经有一个更新的文件列表,我可以从我的版本控制系统得到,我想跳过20分钟的遍历,并直接到需要重新编译的位置。

该项目有几种语言和自定义工具的混合,所以这最好是独立于语言(即它将只处理所有makefile生成依赖项)。 我也会解决C / C ++特定的解决scheme,因为大部分的项目都是C ++。 该项目build立在linux上。

[编辑 – 澄清,回应意见]

ASP.NET项目和windows 7中的IE10兼容模式问题

如何确定一个文件是否是一个链接?

如何防止MMAPcaching值?

在linux上使用信号的IPC

我应该如何理解“> outfile 2>&1”和“2>&1> outfile”?

这个项目真的是巨大的,仅仅因为它的大小和因为下面链接中描述的所有东西(“recursion使得有害的”)而花了20分钟。 不幸的是,这个项目是由许多不同地方的许多作品拼凑而成的,低级别的Makefiles我可以做的事情几乎没有什么灵活性。顶级的把这些作品放在一起的东西是我控制的。

如何将MATLAB的mex安装程序引导到用于C ++编译的Microsoft windows SDK? (设置位置错误)

Coredump正在被截断

Segfault跨线程访问类

使用c#检查工作站locking/解锁更改

防止对象被分页(VirtualLock相当于)

有一件事你可以找到的是“makefile图” – 有一些项目,从大的生成文件项目依赖树。 这里是一个: http : //sailhome.cs.queensu.ca/~bram/makao/index.HTML 。 我认为这将创造一个漂亮的图形,并实际上建立的东西。

如果你想推出你自己的Makefile解析器,并且基本上用你自己的定制脚本替换make,我的建议就是“不要”。 但是有一个Perl模块的集合: Makefile :: Parser 。 它声称“通过了GNU Make测试套件的51%”。

如果你只想看看这么长时间,你可以打开Make的调试输出。 它的位通常是无用的,就像Make决定是否应用隐式规则的页面和页面,但也许会有一些不必要发生的明显的事情发生。 如果你想做到这一点,你可以看看重制 ,“GNU Make with comprehensible tracing and a deBUGger”。

如果一个简单的制作没有更新需要20分钟,那一定是一个巨大的项目! 考虑到你的makefile配置是可以的,你可以尝试像ccache这样的东西。

请注意,即使您获得了只需要进行配对的文件列表,仍可能需要从项目的根目录运行make,因为这些更改必须链接回主二进制文件。 所以,如果ccache还不够好,而且你坚持自己解决这个问题,那么你仍然需要跟踪哪些二进制文件必须用“ld”重新链接

总结

以上是内存溢出为你收集整理的如何为使用makefile生成的整个项目生成一个大的依赖关系图?全部内容,希望文章能够帮你解决如何为使用makefile生成的整个项目生成一个大的依赖关系图?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1280446.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存