问题标签 [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++ - QString::fromUtf8 的多重定义和未定义的引用
我正在将一个大型项目从 Qt4.x 迁移到 Qt5。现在我遇到了无法解决的问题:
我知道肯定有一些包含被复制,但是项目太大了我不知道如何找到它,这很奇怪QString
,因为我认为默认添加了它,你不必做任何类型包括或任何东西。我在网上搜索过同样的问题,但显然没有任何关于它的内容。以下是包括:
aisinfowidget.cpp:
gpssettingswidget.cpp(来自这里的未定义引用)
这是我的.pro文件:
如您所见,我已将串行端口添加到 QT 变量并已链接库,所以我不知道为什么未定义的引用。或许解决QString的多重定义就能解决这些问题。我希望有人能指出我正确的方向。
非常感谢。
PS:代码不是我的,这使得找到问题变得更加困难。
编辑
我已经尝试在 gpssettingswidget.cpp 中评论与库的链接和所有包含并得到相同的未定义引用错误,所以我一定遗漏了一些东西,但是什么?它仍然可能是多重定义错误。在我解决这个问题之前,我无法确定其他问题。
编辑 2
显然,根据这个在Qt5中只需要添加
在文件和 .pro 文件中的 QT += serialport 中,但即使这样做我也会遇到相同的错误。我确信编译器不知何故找不到库,但我不知道还能做什么。我也不知道我是否应该使用用 Qt4 或 Qt5 编译的库。
我尝试了两者并一遍又一遍地得到相同的错误。
编辑 3 好!
我设法解决了错误,QtSerialPort
在以一千种不同的方式编译之后,我得到了一个确实解决了未定义引用的文件,尽管现在我得到了所有这些错误,所以我不确定它是向前还是向后一步* *
和更多。
最后编辑
我对 Qxmpp 库做了同样的事情,并解决了所有这些讨厌的错误。我现在还有其他错误,但我可以说这个问题已经回答了,因为我已经过了这一点。非常感谢。
c++ - 具有不同值的两个键的 C++ 映射
我需要一个映射,它可以有两个不同数据类型的键,但指向同一个结构。
然后我想要一个std::map
我可以看起来像:
这甚至可能还是我需要制作2张地图?好像很浪费 还是我需要重载运算符或其他东西?
c++ - SDL C++:SDL 错误的多重定义
嗨,我正在学习 C++ 中的 SDL 教程,并且有一些课程文件在我编译其中一个时遇到了此处首先定义的 SDL 的错误多重定义。
我正在使用开发 C++。
我已经用谷歌搜索了我的错误的解决方案,但它似乎从来没有解决我的问题。
主.cpp:
错误:
即使没有行号,所以我无法弄清楚问题实际上出在特定代码的哪里。谢谢
c - 防止在 libc.a 中链接 mallocr.o 文件
这是为我的公司准备的,所以我担心过于具体,但我会尝试。
我正在尝试向我们的平台添加对某些现有 ANSI C 代码的支持。我正在使用 GCC 4.7.2 以及 GNU 链接器。我们使用 newlib 的一部分,但也使用其他一些 C 库,特别是libc.a
. 这样做的最终目标是获取一个 EXE 或 ELF 映像(这是针对 PowerPC 架构的微)放入微的 RAM 中。这是在 Windows XP 上完成的。我只是使用批处理文件,而不是构建环境或工具链。
我的构建错误之一是 malloc/free 函数的多重定义问题。cmd 窗口吐出错误,即在malloc.o
和中都有这些定义mallocr.o
。这两者都在libc.a
. 有人告诉我,“r”mallocr.o
是用于重入的。我还被告知我们的平台不支持重入。
我试图通过阻止mallocr.o
从内部链接来解决此错误libc.a
。这是我迷路的部分,我不知道该怎么做。谷歌没有找到任何有用的东西,我还没有在这个网站上找到一个可以回答我的问题的问题。我不知道这是否可能。
这个问题中确实没有具体的代码片段。以下是来自 cmd 窗口的错误。我已经删除了我不愿意分享的公司特定内容。
c++ - 枚举的多重定义
我在 include.h 中有一个名为 Color、Return_main_menue 和 Playertype 的枚举,如下所示:
我还有一个名为 tools.cpp 的源文件以及 tools.h tools.h:
工具.cpp:
我在 main.cpp 中使用 mainmenue():
但是编译器返回错误:
c++ - const char* 的多重定义
我收到上述全局消息链接器错误
我不认为我已经编译了两次文件,但无论如何这是我对文件的定义。
主文件
连接.cpp
连接.hpp
有什么帮助吗?
blackberry - Blackberry 7 - 向多个应用程序发布 SDK 会导致问题
以下问题已单独讨论,但我找不到有效的解决方案。因此发布完整的故事和问题列表。
我们正在构建一个供多个应用程序使用的 SDK(midlet jar)。此 SDK 使用持久存储来存储某些数据。现在有几个问题困扰着我们:
1. 访问商店的密钥已被硬编码在 SDK 中。现在多个应用程序尝试使用相同的键值访问商店,从而导致冲突的问题。
2. Persistable 对象包/类名在多个应用中是相同的。因此,我们在启动应用程序时收到“Class Multiply defined”错误。
现在对于 2,我们一直在考虑以下选项,但似乎都没有解决问题:
1. 不要扩展 Vector 等标准对象并使用标准对象。
问题:数据回收丢失导致冲突。
2. 为使用它的每个应用程序构建具有唯一名称的库。
问题:这意味着我们必须为每个想要使用它的客户发布不同的 SDK。
3.在为下一个应用加载包之前检查Persistable对象类是否已经存在。
问题:当第一个包未安装时会发生什么?类类型会被删除吗?
4. 让应用实现 Persistable 接口,并在回调中传递密钥。
仅仅因为我们无法使用持久存储就要求应用程序传递一些值听起来是不对的。
所以到目前为止,使用 Persistable 对象的 SDK 似乎完全被破坏了。还是我们错过了什么?
任何其他实现该任务的替代建议也非常受欢迎。
c - 在多个编译单元的情况下,避免由于包含相同的头文件而导致多个定义
我有一个经常使用的功能f()
。我想f()
在头文件util.h
中,这样我就可以f()
轻松使用而无需任何额外的编译:
user1.c
:
util.h
:
编译user1.c
:
当有两个编译单元unit2.o
和unit3.o
. 它们的源代码如下:
user2.c
:
user3.c
:
当我multiple definition of f
尝试按如下方式编译这些源代码时出现错误:
问题是如何multiple definition
解决问题?或者有没有更好的解决方案?
在实际案例中,有数百个函数,util.h
大约有 50 个不同的编译单元。
我试图避免使用库和实用程序函数的编译步骤,因为:
- 我使用了许多不同的平台。
- 我想知道是否有一个简单的解决方案,即不使用
cmake
等。 - 我还对协处理器使用交叉编译。
- 我希望编译实用程序函数时使用的标志与编译用户代码时使用的标志相同。
java - Android Java - 如何防止多个 dex 定义?
基本上,我的产品是一个 jar 文件,我希望我的客户将其解压缩并将 .class 文件打包到他们的 jar 文件中,然后将他们的 jar 文件分发给他们的应用程序客户端。
因此,应用程序最终可能会使用两个包含相同类定义的不同 jar 文件。因此,java 编译器(或 android 上的 dex)会抱怨。
为了进一步说明:
- client1 将我的 jar ==> 解压缩 ==> 将 .class 文件打包到 jar1 中
- client2 将我的 jar ==> 解压缩 ==> 将 .class 文件打包到 jar2 中
- 应用程序需要 jar1 和 jar2 ==> 问题!类的多个定义。
我该如何防止呢?
c++ - 类上下文中的错误 LNK2005 和 LNK1169
所以......我应该实现代表几何图形的类层次结构。但是我在运行程序时遇到了这些错误:
这应该是抽象类:Shape.h
继承Shape的类Circle.h:
类的实现:Circle.cpp
点.h:
家庭作业.cpp:
我怎样才能摆脱错误?代码让我不知所措...