如何解决这种依赖关系?
在我的项目中,每个文件都包含同名的头文件。
头文件包含另一个头文件(依赖项)。
毕竟我有这种依赖关系:
parser.h -> lexer.h -> str.h
parser.h -> tables.h -> bst.h -> str.h
因此,当我在 bst.h 中不包含 str.h 时,我的“未知类型名称”错误。
当我包含 str.h 时,我有'type redefinition'错误。
据我了解,这可以通过Makefile中的正确依赖来解决。
在此之前,我有最简单的 Makefile (对象列表,一个命令)。
另外,什么是解决循环依赖的最简单方法?
instructions.h -> bst.h
bst.h -> instructions.h
所以我需要指令原型的数据数据类型,但是还需要指向bst.h中指令的goto指令。
我正在用C99编写,在Makefile中尝试了许多依赖变量,但没有结果。
提前致谢。
答案 0 :(得分:3)
在str.h中扩展Oli的评论:
#ifndef __STR_H__
#define __STR_H__
/* str.h contents here */
#endif