解决Makefile依赖关系

时间:2013-11-28 15:05:59

标签: c dependencies header-files circular-dependency

如何解决这种依赖关系?

在我的项目中,每个文件都包含同名的头文件。

头文件包含另一个头文件(依赖项)。

毕竟我有这种依赖关系:

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中尝试了许多依赖变量,但没有结果。

提前致谢。

1 个答案:

答案 0 :(得分:3)

在str.h中扩展Oli的评论:

#ifndef __STR_H__
#define __STR_H__

/* str.h contents here */

#endif