问题标签 [lnk2005]
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++ - 与枚举相关的 C++ LNK2005 错误
由于在头文件中使用了枚举,我收到了 LNK 错误 2005。我不确定它有什么问题。枚举通常包含在头文件中吗?
这是我的代码。我有 4 个文件:board.h、board.cpp、Solitaire.h、Solitaire.cpp。
板.h:
板子.cpp:
接龙.h
接龙.cpp
我得到的错误是
错误 LNK2005 "enum PieceType (* board_data)[6]" (?board_data@@3PAY05W4PieceType@@A) 已在 board.obj 中定义
谢谢!
c++ - C++ 中的错误 LNK2005 和 ifndef 不起作用
我对 Visual Studio 2012 和 2015 有疑问,因为它看起来比“ifndef”不起作用。我对“NAN”使用“ifndef”,对头文件使用“ifndef”,据说这两个错误(见图)。当我在其他文件的标题中添加链接“#include”Outil.h“”时,我看到了相同的错误消息。
我以前总是这样做,而且总是有效。我不明白为什么即使只有两个文件它现在也不起作用。
我也尝试更改第一个函数“realoc_ungraded”的名称,但它不起作用,我得到同样的错误。
消息:
1)警告:C4005:'NAN':math.h 的宏重新定义
2) 错误:LNK2005: "struct tab_dynamo __cdecl realoc_ugraded(struct tab_dynamo,unsigned int)" (?realoc_ugraded@@YA?AUtab_dynamo@@U1@I@Z) 已在 main.obj Project1 中定义
3) 错误:LNK1169:找到一个或多个多重定义符号 Projet
有不同文件的代码:
文件 main.cpp
文件输出.h
文件 Outil.cpp:
c++ - 模板代码的 LNK2005 和 LNK1169 错误
请在将此问题标记为重复之前阅读我的具体问题,因为没有其他问题可以回答我的问题。
我收到以下链接错误:
我了解错误是什么,但我不知道如何解决它们。
我有一个 function.cpp、main.cpp 和 header_file.h:
函数.cpp:
主.cpp:
header_file.h:
c++ - 定义静态类字段时,多个已定义符号的链接器错误
我有一个类,我在其中定义了一个静态整数,我希望能跟踪该类有多少对象被实例化。
然后我定义以下构造函数:
那么我错过了什么?我想我正在做我教科书告诉我的一切。
我希望有人能指出我的错误,非常感谢。
编辑:@linuxuser27 帮我解决了我的问题,所以基本上我只是移动了
从类定义到类实现,如下所示:
mob.h:
暴民.cpp
构造函数保持不变。
c++ - C++ MSXML,LINK 错误“已在 obj 中定义”
我不明白我做错了什么
通用.h
通用.cpp
Flisr.cpp
错误是:
c++ - 在继承的类中使用相同的 .h 文件时出现 C++ 链接器错误
我有两个班级:ClassA 和 ClassB。ClassB 继承 ClassA。classa.cpp 和 classb.cpp 都包含一个 utility.h-header 文件,以便我可以使用该方法
来自两个 .cpp 文件中的实用程序.h。
像这样在 ClassA 中使用它时:
它工作正常。但是当我尝试像这样在 ClassB 中使用它时:
链接器给了我错误:
我似乎找不到原因。
先感谢您。
编辑:补充说 Utilities.h 只包含这个
c++ - 从模板继承的 MSVC DLL 导出类导致 LNK2005 已定义错误
我一直在跟踪一个大型项目中的错误 3 天,最后得到了一个最小的可重现示例。我想分享这个问题,并就 Visual Studio 的奇怪行为提出一些问题。
当您导出从实例化模板类继承的类时,例如
MSVC 还将Template<double>
在 DLL 中导出实例化的模板类。
如果消费者"template.h"
在他的代码中包含然后实例化a Template<double>
,qnd同时,链接到上面的DLL,他会得到两个定义Template<double>
,导致LNK2005和LNK1169错误。此问题在Microsoft DLL 导出和 C++ 模板中进行了讨论。
这是此问题的最小可重现示例(完整代码在此处):
我在 VS2015 调试模式下编译代码,它给出了多重定义的错误
如果我进行以下更改之一,则不会出现错误:
- 更改为发布模式
- 删除
AA_API
at(2)
并将链接模式更改为 STATIC at(1)
- 评论
(3)
和取消评论(4)
和(5)
- 评论
(6)
和取消评论(7)
和(8)
- 通过 gcc 在 Linux 中编译
- 在 VS 中更改项目参数:添加
/FORCE:MULTIPLE
到项目 Main 的链接器
问题:
为什么更改 1、2、3、4 和 5 有效?我觉得 3 和 4 可以工作真是太奇怪了。
如何在 Visual Studio 中正确解决此问题?
c++ - C++ LNK 2005 错误“已在 .obj 中定义
我收到了这个 LNK 2005 错误,即使我已经使用正确的头文件和 cpp 文件格式创建了游戏类,据我所知。
在谷歌搜索问题一段时间后似乎是这个错误的主要原因,谁能看到我搞砸了什么?
我的game.h文件如下:
我的 game.cpp 文件是:
我的主要内容现在只是创建对象的一个实例
主要的:
linker - 如何规避 LNK2005/LNK2006(重复符号)?
我有一种情况,我必须链接两个不幸地重复定义符号的目标文件(我没有源代码)。我想知道是否有合理的方法来规避这个问题?
在另一个问题中,有人建议无论如何都要使用/FORCE
来产生输出,但也有人提到使用/FORCE
意味着人们几乎无法控制情况。不仅要使用哪些符号未定义,而且还意味着无意中重复的符号会静默通过(这很可能是一个错误)。
我想告诉链接器我知道foo
在两者中都定义了它bar.obj
,baz.obj
并且它应该忽略在baz.obj
. 这样,如果我要qux
在代码库的两个位置定义,或者即使我碰巧foo
在其他一些目标文件中定义,它也应该诊断为错误。
c++ - 尽管在我的 .h 文件中使用了 `#ifndef #define #endif` 代码块,为什么我会收到如此多的 `LNK2005` 错误?
我有 21 个文件,如图所示:
以下 35 个函数在util.h
inside a 的第 364-411 行中声明
代码块:
以下 30 个函数在util_block.h
内部的 第 99-135 行中声明
代码块:
以下 35 个函数在util_convert.h
内部的 第 106-149 行中声明
代码块:
该文件的内容PolSARproLib.h
是:
该文件的内容PolSARproLib.c
是:
我已将这 21 个文件放在一个名为的文件夹中,并按如下方式Static Project
创建了PolSARproLib.lib
文件,我的机器是 Win 10x64 的机器:(这里我上传了这个项目):
文件graphics.obj
, matrix.obj
, my_utils.obj
, PolSARproLib.lib
, PolSARproLib.obj
, processing.obj
, statistics.obj
, sub_aperture.obj
, util.obj
, util_block.obj
,util_convert.obj
是在项目文件夹中创建的,Debug
没有任何错误,但有一些警告,例如:
我创建了一个名为的文件夹Arii
,并在子文件夹中放置了以下 22 个文件\Arii\lib
我也将文件arii_anned_3components_decomposition.c
放在文件夹中Arii
:
现在我arii_anned_3components_decomposition
在文件夹中创建项目Arii
如下(这里我已经上传了项目)
在以下 2 张图片中,您可以看到项目的配置。同样,我应该说我正在使用 Win 10x64 机器
将外部库添加到项目中,如下所示:
.h
我输入放置 头文件的文件夹的路径
我输入.lib
放置文件 的文件夹的路径
在
我已经输入了这些所需.lib
文件的名称:
这是文件的开头(在 main 函数之前)arii_anned_3components_decomposition.c
:
现在我构建解决方案:
不幸的是,我得到了 104 个错误。其中 100 个是关于 , util.h
,util_convert.h
中函数的多重定义util_block.h
(这些函数在问题的开头列出)
错误 1-100 类似:
这里我上传了error and warning file.txt
- 我真的不明白为什么我会收到这些关于代码块
#ifndef #define #endif
已在代码中使用的错误?