问题标签 [multiple-definition-error]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
829 浏览

c++ - Linker does not point out errors; multiple definition warnings pointed to the same line

Believe me, I've been through several posts on here, but none of them addressed the issue I'm having. I have this 2-year-old program that used to run. I'm kind of reviving it, but for some reason now it does not run.

Clearly, I'm having multiple definitions (too many of them):

============================ TERMINAL OUTPUT =============================

... and so on, and so forth, ... and it all ends with:

========================================================================

Strangely, the linker does not indicate any errors throughout the extensive list of warnings, not to mention that these aren't true multiple definitions. Note that each warning in a "multiple...-first defined... " pair refers to the same line. Now I don't know what to do.

I'm wondering if it has something to do with the rather busy syntax of our makefile (though it looks really good to me):

=============================== MAKEFILE =================================

...

...

=========================================================================

So, these are my questions: 1) why did the linker see an error and 2) why am I having so many multiple definitions?

If you want a clarification, let me know even if you kind of have an idea of what's going on.

============================== CODE EXAMPLE ==============================

Here's the full example function (I don't want to make this too long):

========================================================================

0 投票
3 回答
8247 浏览

c++ - Arduino库中的多个定义错误

我正在尝试从 Arduino 1.0.5 中的https://github.com/janisHD/LightRobot编译 lightRobot.ino Arduino 草图,但我遇到了 lightRobot 库中函数的多个定义错误。我使用的是 OS X 10.8.5,但在 Windows 8 中遇到了同样的问题。

以下是 .h 和 .cpp 文件示例:

蓝牙事件.h

蓝牙事件.cpp

我在编译时收到以下错误 - 我只显示了列出的一对 .h/.cpp 文件的错误 - lightRobot 库中的每个文件都有类似的错误:

似乎错误发生在目标文件中,但我不确定为什么,因为头文件对它们进行了保护以防止多个定义。

0 投票
2 回答
1995 浏览

c++ - Multiple definition of error linking my library

i'm trying to create a library with some functions I often use, but compiling I have this error:

This is the main.cpp:

This is Torri_lib.cpp:

And this is Torri_lib.h :

I don't understand why it says me this error, I don't see multiple definition of the functions. Can you help me? Thanks!

0 投票
2 回答
236 浏览

c++ - 无法在类之外定义类函数

我想将游戏类分成标题和源。为此,我需要能够在类外定义函数,但奇怪的是,我不能!

主文件

应用程序.hpp

现在是问题部分。

游戏.hpp .


为什么?

0 投票
1 回答
7428 浏览

c++ - 只是另一个“此处首先定义的多重定义”错误

好的,所以在过去的 4 个小时里,我一直在搜索每个论坛关于“这里首先定义的多重定义”的问题,我想我一定很愚蠢,但我似乎无法解决这个问题。

我有以下文件:

main.cpp 仅包含 Server.h,其中声明了一些函数,然后在 Server.cpp 中定义这些函数。
Server.cpp 使用了 Socket.cpp、FileHandlerOut.cpp 和 Packet.h 中的函数,因此在 Server.h 中包含了头文件 Socket.h、Packet.h 和 FileHandlerIn.h。除标准库外,其他头文件均不包含任何其他内容。

发生的情况是 Server.cpp 中的每个函数和 Packet.h 中的每个函数都会出现多重定义错误。我在 Packet.h 中有函数的原因是我定义了一个结构,并且 Packet.h 函数都在该结构上运行。我真的很困惑我应该如何正确定义这些函数,所以我可以在其他 cpp 文件中使用它们,这可能是我问题的一部分?

0 投票
5 回答
54428 浏览

c - main() 的多重定义

大家好,尝试使用两个 main() 并得到这个错误的 main() 的多个定义。我重命名了我的主要功能,那么为什么会出现这个错误,并且首先在这里为我的 print() 定义。头文件:

c文件一:

c文件二:

错误快照

0 投票
0 回答
102 浏览

c++ - C++ 多定义错误

对于一个简单的 c++ hello world 程序,我遇到了一堆错误。

错误

我看到的所有解决方案都只是令人困惑并且没有帮助。我正在使用代码块 IDE。

0 投票
2 回答
356 浏览

c++ - 多重定义错误

我发布了这个问题,因为我陷入了一个非常奇怪的问题。我有几个 .cpp 文件和几个标题的项目。特别是这段代码出现在三个不同的 .cpp 文件中:

并在每个文件中扮演不同的角色。我想知道为什么编译器让我出现“多重定义错误”。这两个函数原型和变量仅在 .cpp 文件中定义(不在任何头文件中),并且仅在声明它们的文件中使用。

我解决了这个错误,在声明之前加上了“静态”这个词,它工作得很好,但是我在调​​试器上遇到了一些问题(没有显示变量的值)。我发现如果我重命名上面的变量和函数,调试器的麻烦就会消失。我决定在函数内部而不是全局声明变量,而不是重命名变量。我没有重命名这些功能。这样做时,每次我在调用函数“cranknicolson1()”时突然调用它,然后在做任何事情之前,程序就会崩溃。我认为这种非常奇怪的行为是由函数原型之前的“静态”一词引起的,因为我无法解释!这是我的代码。http://qpwoei.altervista.org/Code.zip 我强调代码在执行任何操作之前在 crannicolson1() 中崩溃的事实!所以cranknicolson算法没有问题,但是别的。希望有人可以帮助我,非常感谢您!

0 投票
1 回答
134 浏览

c++ - 多个定义编译错误

我在 StackExchange 上的第一篇文章!我有一个 C++ 课程的作业;使用先前分配的日期类(月、日、年)和时间类(小时、分钟、上午/下午)进行约会类。我想我已经解决了大部分主要/语法错误。

我的问题是,就我目前完成#includes 和头文件的方式而言,我得到了日期和时间的构造函数的多重定义错误 (而且我对模板了解不多,但我需要使用它们。)

我的文件:

  • 约会.cpp

    我需要能够创建时间/日期对象,我应该使用 .h 还是 .cpp 文件?

  • 约会.h

    /li>
  • 日期.cpp

    /li>
  • 日期.h

    /li>
  • 时间.cpp

    /li>
  • 时间.h

    /li>

以下与上述文件的实现有关:

  • 主文件

    /li>
  • 读取.cpp

    /li>
  • 输出.cpp

    /li>
  • arrayListType.h(其中包含所有实现,作为模板)

  • 项目类型.h

不确定您是否需要查看最后 2 个。如果我需要发布更多信息,我很高兴。我也有所有文件的压缩版本。

0 投票
1 回答
1349 浏览

c++ - 由于符号的多重定义,使用 CMake 在 C++ 中创建共享库时出现链接错误

我在编译与 POCO C++ 库链接的代码以创建 Linux 共享库时遇到问题(以防万一)。这是我的简化环境。

我有这 3 个文件:

IL_Notify.h

IL_Class1.cpp

IL_Class2.cpp

IL_Class1并在和IL_Class2处声明。不包含在这些标题中。IL_Class1.hIL_Class2.hIL_Notify.h

这是我的CMakeLists.txt文件

我可以cmake成功执行,创建Makefile. 但是当我运行时make我得到了这个错误

因此,即使我阻止包含两次标头, via#ifndefmake无法编译我的代码,因为在该标头中声明的符号被检测到两次。为什么?