c - 解决 Makefile 依赖

标签 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 时出现“类型重新定义”错误。

据我了解,这可以通过 Makefile 中的正确依赖项来解决。

在此之前,我只有最简单的 Makefile(对象列表,一个命令)。

还有,解决循环依赖最简单的方法是什么?

instructions.h -> bst.h
bst.h -> instructions.h

所以我需要指令原型(prototype)的数据类型,但还需要指向 bst.h 中指令的指针以用于 goto 指令。

我正在用 C99 编写,在 Makefile 中尝试了很多依赖变体,但没有结果。

提前致谢。

最佳答案

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

#ifndef __STR_H__
#define __STR_H__

/* str.h contents here */

#endif

关于c - 解决 Makefile 依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20269359/

相关文章:

maven - maven的正确使用方法

C++ 使用带有在头文件中定义的全局变量的 C 库

c - 如何生成编译错误以防止某些值传递给函数

java - 当类依赖不存在时避免崩溃

更改 "Restrict"ed 指针的顺序会产生不同的程序集

c - Makefile 循环依赖

c++ - netbeans 找不到包含文件 <iostream.h>

c - 是否所有的 C 函数都需要在头文件中声明

c - recvfrom 调用时出现段错误

C Makefile - 不同文件结尾的子目录