问题标签 [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++ - 错误 LNK2005 已定义 - 运行后构建时出现编译器错误
我正在尝试遵循Riemer 的 DirectX 与 C++ 教程。
我做了一些更改,例如在这里我将我的InitializeDevice()
函数放在一个单独的文件 ( tdirect.cpp
/ tdirect.h
) 中。
当我按 F5 编译并运行时,程序运行良好。但是,当我在不选择“重建”选项的情况下更改值(例如0xff00ffff
,将0xff0000ff
青色变为蓝色)时,我的控制台中会出现一连串错误,这会阻止我编译程序。你可以想象,这很烦人。好像要编译两次。tdirect.cpp
下面是 , 的源代码tdirect.cpp
,tdirect.h
相关部分来自main.cpp
(tdirect.h
仅包含于,仅包含于)main.cpp
basicvertex.h
tdirect.cpp
tdirect.cpp
:
tdirect.h
:
main.cpp
包括部分:
编译器错误:
提前致谢 :)
qt - Qt + Zlib => 错误 LNK2005:_deflate_copyright 已在 QtCored.lib(deflate.obj) zlibstat.lib 中定义
当我链接我的应用程序时,我收到以下消息:
错误 LNK2005:_deflate_copyright 已在 QtCored.lib(deflate.obj) zlibstat.lib 中定义
我不确定这个问题,但是...我使用 QT 和 ZLib。两者都是“静态库”。问题是 QTCore.lib 也包含 ZLib!
Qt 项目:在 ZLib 上包含自己的版本。Project GenericLib:使用外部 ZLib.lib(不能链接到 Qt)。项目主体:使用 Qt + Generic lib。
正如我所说,我不确定这是否是问题所在。但是,无论如何,如果有人有帮助我的想法?
谢谢你的帮助。
visual-c++ - 奇怪的链接错误 - LNK1224:无效的图像库
我在将一个非常旧的 Visual Studio 97 C++ 项目移植到 Visual Studio 2010 时遇到了一些真正的困难。让我首先介绍一下在这个新的 LNK1224 错误之前我遇到的错误的一些背景,因为它们可能是相关的,但是我不知道。
在我出现新错误之前,我收到了这个错误:
通过一些挖掘,我发现这个错误的原因是因为 MFC 和 CRT 库都包含“new”和“delete”的定义,所以它们发生了冲突。微软为此提供了 2 个解决方案,详见http://support.microsoft.com/kb/q148652/。其中之一是确保在所有文件中始终首先包含 MFC 标头(afx 内容)。好吧,这个项目中有大约 100 个文件,我只是厌倦了试图找到包含错误顺序的资源的文件。所以我选择了另一个解决方案,它基本上是强制库以特定顺序加载。基本上,您必须告诉编译器忽略特定库,以便您可以按照您选择的顺序显式加载它。就我而言,它是 nafxcw.lib。
因此,在项目属性 --> 链接器 --> 输入下,我明确忽略了 nafxcw.lib,然后将其明确包含在列表的前面。
所以在这样做之后,我的 LNK2005 错误就消失了。但是它们被一个单一的链接错误所取代。
我不知道我是否正确修复了以前的链接错误,而这个新的链接错误实际上是我接下来要处理的事情,或者我只是创建了一个更严重的链接错误,它基本上在链接过程到达之前停止了它我原来的 LNK2005 错误。无论哪种情况,我都找不到关于此错误的太多信息。微软在这个链接中没有说太多关于它http://msdn.microsoft.com/en-us/library/3ya3f8wz%28v=vs.80%29.aspx
您为图像指定了无效的基地址。基地址必须是 64KB 对齐的(最后四个十六进制数字必须为零),并且映像基址必须适合 32 位有符号或无符号值。
这对我来说并不是那么有帮助,而且似乎没有其他线索可以说明这个问题的来源。我不知道下一步是什么。
visual-studio-2010 - 由于其他依赖库,在 VS2010 中链接 googleTest 会导致 LNK2005
我有一个庞大而复杂的项目,终于要进行单元测试了。我已经使用 Visual Studio 2010 在本地构建了 googleTest 1.6.0,项目文件是使用 README 指定的 cmake 构建的。
该项目有许多静态和动态链接的依赖库。其中许多是专有的。所有链接尝试都会产生 220 个此类错误。这是一个样本:
msvcprtd.lib(MSVCP100D.dll) : 错误 LNK2005: "public: void __cdecl std::_Container_base12::_Orphan_all(void)" (?_Orphan_all@_Container_base12@std@@QEAAXXZ) 已经在 gtest.lib(gtest-all.对象)
libcpmtd.lib(cerr.obj) : error LNK2005: "protected: char * __cdecl std::basic_streambuf >::_Gndec(void)" (?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std @@IEAAPEADXZ) 已在 msvcprtd.lib(MSVCP100D.dll) 中定义
LIBCMTD.lib(setlocal.obj):错误 LNK2005:_configthreadlocale 已在 MSVCRTD.lib(MSVCR100D.dll) 中定义
链接:警告 LNK4098:defaultlib 'MSVCRTD' 与使用其他库冲突;使用 /NODEFAULTLIB:library LINK : 警告 LNK4098: defaultlib 'LIBCMTD' 与使用其他库冲突;使用 /NODEFAULTLIB:library
致命错误 LNK1169:找到一个或多个多重定义的符号
我已经尝试了 /NODEFAULTLIB 标志,并且按照建议尝试仅忽略 msvcprtd.lib、MSVCRTD.lib 和 LIBCMTD.lib,但后来我遇到了未解析的符号...
项目和 googleTest 都使用 x64、/MP、/MDd 编译,没有 /clr。
我一直在玩编译器标志,想知道是否存在某种版本不匹配。Dumpbin,就我的理解而言,并没有暗示我可能理解的任何事情。我希望有一个呃
c++ - 如何在不产生多重定义符号错误的情况下将命名空间的内容提供给整个项目?
我正在尝试制作一个相当大的视频游戏,我当前处理鼠标输入的方法是将 mouseX、mouseY 和枚举 mouseState 作为参数传递给每个需要鼠标知识的单个对象的更新函数。它相当混乱,我想通过将鼠标变量放在一个名为 Input 的命名空间中来使它们更具全局性,以便我可以使用 Input::mouseX 等访问它们。
就目前而言,名称空间 Input 存在于 Input.h 中(内容如下)
并且两个成员函数在 Input.cpp 中定义
将 Input.h 包含在主循环对象的标头Core.h中后,链接器会发出嘶嘶声,因为在它看来,Input.h 中包含的所有内容现在都是乘法定义符号。很明显,我使用头文件有问题,因为据我所知,我在使用命名空间时没有犯任何明显的错误,而且 LNK2005 的错误代码前缀似乎暗示了链接器(?)。
如果有人可以阐明我的困境,我将不胜感激
c++ - #include,错误 LNK2005
Alirhgt,我试图解决这个问题 myslef 但不能。所以,我有一个任务是在控制台中构建一个绘画程序,我有一组处理控制台的函数。我的任务只是将它们在逻辑上连接起来做一些有用的事情。问题是每次我 #include 给定的两个文件:.h 和 .cpp 文件时,我都会收到已定义的 LNK2005 错误。如果我只包含头文件,则函数不会做任何事情(我尝试使用一个函数,但控制台只是站在那里什么都不做)。谁能告诉我我做错了什么?我有一段时间没有使用 C++,所以我可能会犯一些愚蠢的错误。
c++ - LNK2005(已定义)
我知道您已经看到 21728517 人寻求帮助,但在搜索和阅读有关此内容后,我真的无法弄清楚这个问题。我知道这个错误,我以前见过它,但是,这一次,我似乎无法绕过它。
我也试过这个清单。
所以,错误:
所以,问题是,这些是在“misc.h”中用正确的#ifndef #define #endif 定义的函数。它们没有在其他地方定义,但我仍然得到死亡的 LNK2005。我究竟做错了什么?
提前致谢。
c++ - 在 C++ 中声明公共静态变量时出现链接错误
我有这个带有可变配置参数的类。我想将它包含在其他类中:JugadorHumano
, JugadorIA
, Main
, PartidaClasica
, PartidaMision
.
我想要的是能够修改或读取其他类的值。我不能声明一个静态变量并在声明中定义它。我也不能让那些没有定义的变量,因为我得到“未解决的外部”错误。
我应该怎么做才能避免我得到这个重新定义?我无法弄清楚,也找不到类似的问题。
c++ - 标准库已在 lib 中定义,导致链接器错误
不知道我在这里做错了什么,但说我有:
foo.h
foo.cpp
我将它编译为一个库,如果我将该库与相关头文件(foo.h)一起包含在另一个项目中并尝试调用 foo 的实例:
我收到一个链接器错误说:
错误 1 错误 LNK2005: "public: __thiscall std::_Container_base12::~_Container_base12(void)" (??1_Container_base12@std@@QAE@XZ) 已经在 foo.lib(foo.obj) C:\foo\msvcprtd 中定义.lib(MSVCP100D.dll) 脚注
任何想法为什么会发生这种情况?
c++ - LNK2005: 找到使用 /MT 构建的模块
我正在尝试构建 C++ 项目(地图服务器)。这取决于其他一些项目。
当我运行时nmake
,它显示了许多这样的错误:
我知道这是由不同项目的选项/MD
引起的。/MT
我检查了所有项目的构建文件,发现只有一个带有/MT
. 我将其更改为/MD
并重建它,但错误仍然存在。
如何查找导致此错误的库?
谢谢大家!
PS项目清单:
zlib