2

我正在为一个大学项目开发​​扫描仪/解析器,我遇到了这个错误:

stack.c 91:'[stack.c 中的所有函数]'的多重定义
stack.c 91:首先在这里定义

由于某种原因,我似乎无法弄清楚编译器似乎在告诉我我已经在同一个地方多次定义了同一个函数。

我得到了一些框架代码和一个生成文件,因此我完全自己编写的文件(stack.c、stack.h)和其余代码之间肯定存在某种不正确的通信。

我已经在#includes 周围移动并弄乱了一个多小时的makefile,并且遇到了越来越多的问题。这个应该怎么设置?

stack.cstack.h是我写的小文件,用于symtab.csymtab.h.

4

2 回答 2

5

symtab.h,您正在#include获取源文件stack.c。不要那样做,多重定义问题应该会消失。

于 2013-04-13T02:15:14.703 回答
1

我终于得到了(看似)工作的东西。作为 user315052,我从 .h 文件中删除了所有 #include,并将它们放入 .c 文件中。然后我从 symtab.h 收到关于在 stack.h 中定义的类型的错误,所以我在 symtab.h 中 #included stack.h 并且它现在似乎可以工作(或至少可以编译)。

于 2013-04-13T03:02:17.300 回答