【发布时间】:2009-03-26 11:53:37
【问题描述】:
我似乎无法在我的一门课程中摆脱这些看似随机的编译错误。 我收到大约 4 个错误,例如:
multiple definition of `draw_line(float, float, float, float)'
和
multiple definition of `near_far_clip(float, float, float*, float*, float*, float*, float*, float*)'
在方法中间被标记。
我也经常在另一种方法的中间得到multiple definition of `stack'。 stack 是一个完全不同的文件中的全局变量。我收到错误的文件中甚至都没有提到它。
我尝试将容易出错的文件分成 .h 和 .cpp 文件(最初只是一个 .cpp),但没有任何关于错误的更改...
我没有重复的方法。我只有一个#include 的lines.h 并且开头有一个#ifndef 子句。所有这些错误都出现在 .cpp 文件中。
有什么想法吗?
好的,我得到了代码:
lines.cpp 是我从导师那里收到的转换后的 .c 文件。我包含了 makefile 以防万一,因为我总是遇到问题。我还准确地注释了文件中错误标记的位置,但它们看起来很随机,所以我不知道它是否特别重要。我放弃了 .h 文件,因为它没有解决任何问题或提供帮助。我相信没有它会更容易找到错误。
这里是请求的main.cpp file(没有.h)。
我重新制作了lines.h文件,因为我仍然收到:
multiple definition of `draw_line(float, float, float, float)'
和
multiple definition of `near_far_clip(float, float, float*, float*, float*, float*, float*, float*)'
lines.cpp 文件中的错误,但 multiple definition of `stack' 错误现在位于 ThreeD.cpp 文件中的随机位置(现在由注释标记)。 更新:此错误已修复,文件已修改为显示:
我搞砸了一些全局变量 extern 的标签,但它似乎没有影响任何东西。
【问题讨论】:
-
脑海中浮现出许多想法,但如果我要将它们全部列出来,那就太费时间了。毫无疑问,如果我们能看到您的代码,我们会发现更容易缩小问题范围。轻推,轻推,眨眼,眨眼。
-
你能展示你最后的 g++ 命令吗?
-
你还想要什么代码?