【发布时间】:2023-03-13 20:22:01
【问题描述】:
如何解决这种依赖关系?
在我的项目中,每个文件都包含同名的头文件。
头文件包括另一个头文件(依赖)。
毕竟我有这个依赖:
parser.h -> lexer.h -> str.h
parser.h -> tables.h -> bst.h -> str.h
所以当我在 bst.h 中不包含 str.h 时,我会出现“未知类型名称”错误。
当我包含 str.h 时出现“类型重新定义”错误。
据我了解,这可以通过 Makefile 中的正确依赖关系来解决。
在此之前,我拥有最简单的 Makefile(对象列表,一个命令)。
另外,解决循环依赖最简单的方法是什么?
instructions.h -> bst.h
bst.h -> instructions.h
所以我需要指令原型的数据数据类型,但也需要指向 bst.h 中的指令的指针以获得 goto 指令。
我正在用 C99 编写,在 Makefile 中尝试了很多依赖变化,但没有结果。
提前致谢。
【问题讨论】:
-
这不是 Makefile 问题,你只需要在你的头文件中include guards。
标签: c dependencies header-files circular-dependency