问题标签 [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.

0 投票
0 回答
462 浏览

c++ - LNK2005 为 C++ libphonenumber 制作 C 包装器

我有一个跨平台的 C 项目,现在我想在我的项目中尽可能少地引入基于 C++ 的 libphonenumber。第一次尝试是使用 Visual Studio 2013 将其集成到 Win32 中,但稍后它也需要在 iOS 和 Android 上运行。

所以我创建了这个标题:

这个cpp:

但是我遇到了这个链接器错误:

错误 LNK2005:“私有:静态无符号整数 const i18n::phonenumbers::PhoneNumberUtil::kMinLengthForNsn”(?kMinLengthForNsn@PhoneNumberUtil@phonenumbers@i18n@@0IB) 已在 LibPNWrapper.obj 中定义

这确实在 phonenumberutil.h 中声明和定义为:

静态常量 size_t kMinLengthForNsn = 2;

我知道通过将它包含在我的 cpp 中,它会再次声明。但是我试图:

  • 而是将其包含在头文件中,但后来我不得不更改我的文件以编译为 c++,但我仍然遇到了问题。

  • 在 cpp 文件中使用命名空间但没有帮助。

我不确定是因为我混合了 C 和 C++ 还是我在这里遗漏了其他基本内容。

欢迎所有想法。

0 投票
1 回答
967 浏览

visual-studio-2012 - 添加了 libcurl 的构建项目期间的 LNK 错误

我已经解决了 2 周如何构建 libcurl 项目。最后今天我管理它,我跟着http://curl.haxx.se/libcurl/c/Using-libcurl-with-SSH-support-in-Visual-Studio-2010.pdf但在我想将 libcurl 添加到我的自己的项目,它会引发很多 LNK 错误。所以这是我自己的项目的代码,我想在其中添加 libcurl。它仅用于从 url 下载文件:

我正确设置了我的项目属性(C/C++ - 常规、预处理器、链接器 - 常规、输入)并希望将其构建为应用程序 - exe 文件。到目前为止,我一切顺利,我能够创建 libcurld.lib,我将其添加到我的项目属性中的链接器中。在我构建它之后,它会抛出很多 LNK 错误,并且看起来没有添加任何库。这是输出:

我的问题很简单。我的项目属性设置或如何正确设置 libcurld.lib 可能有什么问题?

0 投票
3 回答
3133 浏览

c++ - 错误 LNK2005 - 我在这里做错了什么?

我已经获得了一些我应该修改的源代码(作为作业的一部分),但是我无法编译未经修改的代码版本,而且我正在抓狂。(要清楚 - 此代码用于哈希表上的学校作业,这些编译错误不是作业的一部分)

我正在使用 Visual Studio 2010 进行编译。我整天都在做这件事,却一无所获!

我收到一系列“LNK2005”错误:

这是给我的代码:

哈希main.cpp

哈希表.h

哈希表.cpp

列表工具.h

列表工具.cpp

我认为这超出了我的深度,我在这里以及在谷歌上可以找到的任何其他地方都倾注了类似的问题/解决方案,但我完全被难住了。

编辑: 根据 Arcinde 的要求,我#include "hashtable.cpp"在 hashmain.cpp 中这样注释掉:

这会产生以下错误:

0 投票
2 回答
2330 浏览

c++ - 错误 LNK2005:已经定义了两次包含头文件

我需要在 Visual Studio 项目中的多个 cpp 文件中编辑和访问一些变量。所以我创建了一个头文件,其名称空间包含我需要的所有变量,如下所示:

但是,如果我#include将这个头文件放在两个源文件中,我会得到这个链接器错误 2005,说参数已经在另一个 obj 中定义。

在提到相同错误的其他问题时,我在这里知道

一个函数定义只能出现一次。#includes .h 文件的每个 .cpp 文件都将生成该函数的另一个副本。

但这也适用于命名空间变量吗?如果是这样,我们如何确保跨多个源文件访问特定变量?

0 投票
1 回答
258 浏览

c - C 语言中的 LNK1169 和 LNK2005 错误

尝试编译代码时出现以下错误:

LNK1169:找到一个或多个多重定义符号 LNK2005:[函数名称] 已在 main.obj 中定义 ^^^ 每个函数的错误 LNK2005

这是我当前的代码:main.c

pa-1.c:

pa-1.h

我正在使用 Visual Studio。

谢谢!

0 投票
2 回答
394 浏览

c++ - 添加新头文件时出现 C++ 错误 LNK2005

我正在为学校做一个项目。我知道我的循环依赖(并且之前已经阅读了这里的大部分决议)但它目前以我需要的方式工作。可悲的是,我很确定这也是我痛苦的原因。我想包括concol.h,以便它可以与两个文件一起使用(我想为我的输出添加一些颜色 - 这不是我的作业的要求,而是我想做的事情)。我已经尝试将此头文件放置在几个不同的位置,但我总是遇到同样的错误。我考虑过像处理循环依赖一样使用前向声明,但我认为这不适用于命名空间。

错误:

1>Flight.obj : error LNK2005: "void * eku::std_con_out" (?std_con_out@eku@@3PAXA) already defined in BoardingPass.obj 1>Flight.obj : error LNK2005: "bool eku::colorprotect" (?colorprotect@eku@@3_NA) already defined in BoardingPass.obj 1>Flight.obj : error LNK2005: "enum eku::concol eku::textcol" (?textcol@eku@@3W4concol@1@A) already defined in BoardingPass.obj 1>Flight.obj : error LNK2005: "enum eku::concol eku::backcol" (?backcol@eku@@3W4concol@1@A) already defined in BoardingPass.obj 1>Flight.obj : error LNK2005: "enum eku::concol eku::deftextcol" (?deftextcol@eku@@3W4concol@1@A) already defined in BoardingPass.obj 1>Flight.obj : error LNK2005: "enum eku::concol eku::defbackcol" (?defbackcol@eku@@3W4concol@1@A) already defined in BoardingPass.obj 1>Source.obj : error LNK2005: "void * eku::std_con_out" (?std_con_out@eku@@3PAXA) already defined in BoardingPass.obj 1>Source.obj : error LNK2005: "bool eku::colorprotect" (?colorprotect@eku@@3_NA) already defined in BoardingPass.obj 1>Source.obj : error LNK2005: "enum eku::concol eku::textcol" (?textcol@eku@@3W4concol@1@A) already defined in BoardingPass.obj 1>Source.obj : error LNK2005: "enum eku::concol eku::backcol" (?backcol@eku@@3W4concol@1@A) already defined in BoardingPass.obj 1>Source.obj : error LNK2005: "enum eku::concol eku::deftextcol" (?deftextcol@eku@@3W4concol@1@A) already defined in BoardingPass.obj 1>Source.obj : error LNK2005: "enum eku::concol eku::defbackcol" (?defbackcol@eku@@3W4concol@1@A) already defined in BoardingPass.obj 1>D:\School Stuff\Fall 2015\CIST 2362 C++ II\Final - Airline Reservation System\Debug\Final - Airline Reservation System.exe : fatal error LNK1169: one or more multiply defined symbols found

源码.cpp

飞行.h

登机牌.h

concol.h

0 投票
1 回答
1188 浏览

c++ - 错误 LNK2005:“已在 SkinHeaderCtrl.obj 中定义”

我收到此错误“错误 2 错误 LNK2005:“公共:虚拟 __thiscall CMemDC::~CMemDC(void)”(??1CMemDC@@UAE@XZ) 已在 SkinHeaderCtrl.obj C:\Users\anthonyd\Desktop\ 中定义ASPX\STP\nafxcwd.lib(afxglobals.obj) STP"

我已经阅读了许多类似的问题,但找不到合适的问题。有人可以帮忙吗?

这是 skinheaderctrl.h

更新

在 skinheaderctrl.cpp 我有一个包含 #include "memdc.h" 我想将它更新到 CMemDC 吗?

0 投票
3 回答
1833 浏览

c++ - 错误 LNK2005 构造函数已定义

你好我的代码有一点问题。

//俱乐部.h

//俱乐部.cpp

//日期.h

//日期.cpp

我的问题是 VS throw me this 1>Date.obj : error LNK2005: "public: __thiscall Date::Date(int,int,int)" (??0Date@@QAE@HHH@Z) 已经在 Club 中定义。对象

我知道他的意思,但我只在 date.h 上定义了构造函数,我检查没有其他定义。请帮帮我

0 投票
1 回答
1911 浏览

c++ - LNK2005 已经定义了在 C++ 项目中包含 C 类型头文件的错误 [MSVC12]

我在尝试将一些第三方代码集成到我的项目中时遇到了障碍。我正在尝试集成 fontstash,这是一个仅标题的 OpenGL 文本渲染解决方案。( https://github.com/memononen/fontstash ) 作为一个整体,我也在使用 SDL、GLEW、AssImp、Lua 5.3/LuaBridge 和 Bullet Physics。我已将 fontstash 头文件放在我的 vc/include 目录中。编译正常进行,但链接在巨大的墙中惨遭失败......

它似乎只是简单地迭代了通过 fontstash 头文件提供的整个函数列表。我尝试将标题包装在 extern "C" {} 中,但无济于事。我也尝试过包含项目目录中的文件。我不知道为什么会发生这种情况以及从哪里开始弄清楚是什么原因造成的。如主题标题所示,我使用的是 MSVC12/Win7,我正在为 Windows 构建并为 x86 进行编译。

此外,我不止一次地包含这些文件,因为在其他位置使用了使用 fontstash 的相关代码。我认为这是问题所在,但是 fontstash 提供的头文件具有包含保护,所以我不明白为什么会在这方面发生这种情况。

0 投票
1 回答
260 浏览

c++ - 错误 LNK 2005 & LNK1169 C++ Visual Studio DLL

我正在尝试为 OBS 创建一个 DLL 插件,但是当我尝试编译一个简单的脚本时,它给了我以下错误 -

我创建了一个简单的脚本,它只有 2 个文件,即 -

这些是我的文件-

句柄.h

名称增强.cpp

我试图删除该dllmain.obj文件,但没有奏效

我使用https://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=vs.85).aspx作为我的代码的基础