gpt4 book ai didi

c++ - 如何使用拓扑排序结果来解决依赖关系生成最终目标代码?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:07 25 4
gpt4 key购买 nike

下面我附上一个简单的依赖列表作为例子。我正在使用 Unix tsort 通过给节点编号来解决这个问题

enter image description here

Root 0
File1 1
File2 2
File1.cpp 3
File2.cpp 4

> tsort
0 1
0 2
1 3
2 4

Generates:
0 2 1 3 4

我无法理解的是如何有效地使用这个依赖列表以便只重新编译更改的文件?我只是想了解 make 是如何在内部工作的,并试图为此构建我自己的小原型(prototype)。欢迎使用拓扑排序以外的任何其他方法。

最佳答案

实际上,make 可能不再真正使用拓扑排序:以这种方式天真地生成工作项的线性列表不适合并行性。

我不知道 make 实际上做了什么,但我的想法是首先修剪依赖树(删除依赖关系未改变的叶子,这可能会创建新的叶子,所以重复直到不再删除任何东西),然后做一个并行深度优先访问来构建每个节点。

关于c++ - 如何使用拓扑排序结果来解决依赖关系生成最终目标代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17885306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com