问题标签 [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.
c++11 - 将定义移动到它自己的编译单元,同时将声明保留在头文件中?
在我的一个项目的头文件中,我有以下内容;
其中generic_type_test
定义为;
在同一个头文件中。
编译时出现一堆multiple definition
链接器错误(显然)
所以问题是,简单来说,我将如何将我的定义移动到它自己的编译单元(“.cpp”文件),同时将我的声明保留在头文件中?
致 Jarod42
应用你的想法,收益;
用线条;
我也知道最简单的解决方法是转发函数,但我真的很喜欢这种函数指针的简单性。
c++ - C++ 链接错误与 Linux 上的多个定义
我正在尝试编译一个代码,它得到一个带有多个定义的链接错误。不幸的是,我无法修复它,我们将不胜感激。
我有以下文件:头文件:CEST.h;CEST_UI.h; 全球变量.h;
源文件:CEST.cpp;CEST_UI.cpp;全局变量.cpp
所有声称有多个定义的参数都在“GlobalVariable.h”中定义并在“GlobalVariable.cpp”中初始化。
我包含“GlobalVariable.h”两次:一次在 CEST.cpp 中,第二次在 CEST_UI.cpp 中。
我在想“GlobalVariable.h”中的以下守卫会保护我免受多定义链接错误的影响:
我还附上了“GlobalVariable.h”和“GlobalVariable.cpp”,以便您查看。
在“GlobalVariable.h”中</p>
在 GlobalVariable.cpp
c++ - 多重定义 - 为什么我不能在标题中定义它们
我知道...基础知识,但我不明白。我读到我可以将我的函数定义放在我的标题中,然后包含它。到目前为止,我从未这样做过,因为我喜欢我在 .cpp 文件中的定义,与它在头文件中的声明分开。
现在我只有两个函数,我不想要这些定义的额外文件。
头文件.h
这是我的头文件的摘录。我得到了一些其他enum
的 s 和struct
s 但它们对于这些函数并不那么重要,因为它们只是将一个整数转换为一个 QString ,它将显示在其他地方。我也有一个包含警卫。
现在我得到了很多像这样的错误:
'reviewToString(int)' 的多重定义
这是为什么?为什么我不能在此标头中声明和/或定义它们?
c++ - C++中的多个定义错误以及解决此问题的解决方案
我是 C++ 新手。我对 C++ 中的多个定义错误有一些疑问。
假设我在一个程序中有 3 个文件。1 个头文件和 2 个 .cpp 文件。我在两个 .cpp 文件中都包含了头文件。
- 我在头文件中声明了一个类,并以完全相同的方式在每个 .cpp 文件中定义了该类。那么这种类型的实现会不会导致多重定义错误呢?如果是这样,是因为它有两个类定义副本并且编译器不知道在链接两个 .o 文件期间要采用哪一个?
我们可以通过extern
在头文件中使用并仅在其中一个文件中定义类来解决这个问题吗?如果我们可以通过使用这种方法解决问题,我们是否必须将.cpp(带有类定义)包含到其他.cpp文件中(没有类定义)?
我已经在头文件中声明并定义了一个类。这种情况是否与上述相同(在1中提到)?
我在头文件中声明了一个类,并在每个 .cpp 文件中定义了该类,但定义(函数体)不同。那么这种类型的实现会导致多重定义错误吗?如果是这样,我们如何解决 .cpp 文件中函数主体不同的问题?
c++ - C++头文件中的内联函数
为什么在头文件中定义类的函数是一种不好的做法?
假设我有一个头文件,我在类定义本身中定义了类的函数,例如,
头文件.hpp
所以像这样在类中定义函数会使函数“内联”。所以如果我们在两个 .cpp 文件中包含这个头文件,会导致“多重定义错误”吗?定义这样的函数是一种不好的做法这在类定义中?
c++ - SDL C++ Multiple definition error
In my file I can't figure out why I'm getting multiple definition errors. I'm getting them for an "SDL_Surface" called "screen".
screen is located within render.h. I've tried making it extern but it still throws an error. I've looked up quite a bit but I can't find a solution.
Here are the files in question:
main.cpp
render.cpp
render.h
Here's the error:
obj\Debug\render.o||In function
Z4INITv':| C:\Users\Joshua\Documents\CodeBlocks\Simulation\Zombie Survival\render.cpp|11|multiple definition of
screen'| obj\Debug\main.o:C:\Users\Joshua\Documents\CodeBlocks\Simulation\Zombie Survival\main.cpp|20|first defined here| ||=== Build finished: 2 errors, 0 warnings (0 minutes, 1 seconds) ===|
c++ - 此处首先定义的多重定义 gcc
我有这些文件
这是文件defines.hpp
这个defines.hpp 文件包含在producer.hpp 和consumer.hpp 中。producer.hpp 和consumer.hpp 文件分别包含在producer.cpp 和consumer.cpp 和main.cpp 中。编译时出现错误。
这是我的makefile
如何解决这个问题呢 ?
c++ - 尝试链接 .cpp 文件时出现多重定义错误(头文件中没有 .cpp)
所以我在上一个基本的编程课,我们正在学习如何将文件链接在一起。问题是我遇到了一个似乎没有人能够修复的错误。我已经去过我的教授、学生助理和校园里的编程辅助实验室,但运气不好。
我还在这里搜索了至少 10 篇与多个定义错误有关的不同帖子,但在每种情况下都是:
尝试#include .cpp 文件或
函数定义在头文件中。
如您所见,这些情况都不适用于此处(我已删除所有注释以使代码更易于阅读):
头文件:square.h:
函数定义文件:square.cpp
程序文件:test1.cpp
最后,每当我尝试编译时都会出现错误:
编译命令,仅供参考g++ test1.cpp square.cpp -o testfile
使用 makefile 似乎没有任何区别,我最终只是盯着完全相同的编译错误。我试过使用两个不同的makefile:
生成文件 1
生成文件 2
现在我只知道这是某种链接器错误,但我不知道该怎么做。我问过的每个人都说我的代码是正确的。但显然有些事情是错误的。
任何帮助将不胜感激。:D
c - "First defined here" error in Eclipse with C
I'm trying to compile a C program using libxml2 in Eclipse. It seems like my code doesn't have problems, but there are errors when I build my project.
The error output is in this screenshot: https://drive.google.com/file/d/0BwV-0_2diIaaQlZHM2Fwa2R0LWc/edit
Before this error, I had an “Undefined reference to” error, but it was because I forgot to link the library libxml2. Now it's the problem in the screenshot. I don't what to do.
[EDITED]
I solved my problem I just need to put -nostartfiles
in the linker flags.
c - 在 NetBeans 中正常工作时使用手动 makefile 时所有函数的多重定义
在学习制作文件时,我偶然发现了这个错误,我的老师似乎无法为我指出正确的方向。搜索并阅读了几个相关问题后,我似乎仍然看不到答案。令我惊讶的是我在 NetBeans 中没有出错。
生成文件:
我得到的错误:
所有这些函数只在主文件“connect4.c”中定义一次,该文件不包含在任何地方。我不知道该尝试什么,但我认为这对受过训练的人来说可能是显而易见的。我觉得我会受到很多批评,但我认为其他情况不适用于我。