gpt4 book ai didi

c++ - 如何检查给定文件是否存在依赖性错误?

转载 作者:行者123 更新时间:2023-11-27 22:51:51 25 4
gpt4 key购买 nike

我是 C++ 的新手,被分配了以下任务:

鉴于我有以下文件集:alpha.cpp、bravo.cpp 和 charlie.cpp,我应该创建一个程序来检查这些文件是否存在依赖性错误。

我的想法是让程序读取文件,创建一个邻接列表图,将每个文件作为一个顶点,如果一个 .cpp 文件包含另一个 .cpp 文件,则有从一个节点到另一个节点的有向边。所以总的来说,我需要在图上运行深度优先搜索以查看图是否有任何后边。

那是正确的轨道吗?我觉得我明白我应该做什么,但我不确定如何准确地实现它。

最佳答案

我会使用带有一点解析魔法的构建系统。我有一个用于很多项目的 Makefile here .它解析出包含并为它们生成目标。

关于像 Make 这样的工具,它们必须为您进行图形遍历。他们通过获取所有部分排序(依赖声明),并对它进行拓扑排序以获得完整排序(文件的线性化,以便如果 A 依赖于 B,则 B 在 A 之前)来做到这一点。

但是,关于拓扑排序的事情是它只存在于直接无环图。因此,如果您生成像 Makefile 这样的依赖项,并且存在任何循环,构建将失败,这正是您想要的,因为当您尝试递归包含内容时,它无论如何都会发生。

关于c++ - 如何检查给定文件是否存在依赖性错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36440780/

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