问题标签 [lnk2001]

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 回答
1010 浏览

c++ - 未解析的外部符号 _forceCRTManifestCUR

当我试图构建我的架构C++解决方案之一时。x64我收到很多这些错误:

  • 项目之前工作正常,但我不得不重新安装 Windows 等 VS,因为它遇到了这个问题。
  • 当我为它构建它时,它构建得很好x32
  • 我的操作系统是Windows XP - X32(Visual Studio - 2008)这可能是原因吗?我希望可以x64在系统上构建架构解决方案x32吗?

请指导我如何解决这个问题。

谢谢你。

0 投票
1 回答
12288 浏览

c++ - 链接错误 LNK2001:无法解析的外部符号 (Visual Studio 2008)

我有 3 个无法摆脱的链接错误。

我在类的头文件中定义了一些自己的用户定义类型的静态公共类常量。接下来我在 cpp 文件中声明并初始化了类常量。我可以在类本身中使用这些常量。但是,当我尝试在另一个项目中使用常量时,出现链接错误:

我不知道这里有什么问题。有人出主意吗?

提前谢谢了!

头文件

.cpp 文件

我们使用的是 Visual Studio 2008。定义常量的项目作为引用添加到另一个项目的公共属性中,以及C++ 属性中的附加包含目录。

在另一个第三个项目中,我们实际上也声明了一些静态类常量,这些常量在使用它们时不会出现链接错误。

链接器命令行(所有选项)

(备注:EuroAllgemeineMasken 是使用常量的“其他”项目;EuroMelder 是定义和声明常量的项目。)

0 投票
2 回答
77 浏览

c++ - LNK2001 关于所有私有方法

我有一个带有源代码的项目,以及一个位于同一解决方案中的 TestProject。

在TestProject 中使用GTest 框架的测试文件已经从主项目中获得了一个#include头文件。Composite.h

在第一个 GTest 的主体中,我实例化了在Composite.h. 这一行给出了编译错误 LNK2001:复合类的每个私有方法上的未解析外部符号。

文件中的代码myTest.cpp如下所示

这个实例化有什么问题?

编辑

我链接到包含复合类中私有方法实现的库。另外,我尝试替代#inlcude .cpp 获取此类的源代码。任何一种解决方案都不能解决问题。

编辑——问题

这可能是看不到包含复合类及其父类(Q_OBJECT已定义)的 moc 文件的文件夹吗?

我尝试在测试项目属性的附加目录中添加包含 moc 文件的文件夹。这也不起作用。

0 投票
2 回答
1955 浏览

c++ - Visual Studio 2010:错误 LNK2001:未解析的外部符号:sapi.h 和 Microsoft Speech SDK for KINECT

我在 Visual Studio 2010 中遇到了一个奇怪的错误...

我在 VS 2010 Ultimate 上使用 Kinect for Windows SDK v1.8,用于使用 MS Kinect 的语音识别程序。

就像在示例 SpeechBasics(可在 Kinect Developer Toolkit Browser 上获得)中解释的那样,我在我的项目属性中添加了具体的 VC++ 包含和库路径,然后列出了默认的系统包含和库目录。

但是当我构建解决方案时,我收到以下错误:

CKinect_Squeletton.obj:错误 LNK2001:未解析的外部符号 _SPDFID_WaveFormatEx CKinect_Squeletton.obj:错误 LNK2001:未解析的外部符号 _CLSID_SpStream CKinect_Squeletton.obj:错误 LNK2001:未解析的外部符号 _CLSID_SpInprocRecognizer CKinect_Squeletton.Cobj1:错误未解析符号

构建失败。

我检查了我所有的包含文件,我所有的项目属性。我做了很多研究,并测试了许多响应的可能性,但我没有找到针对我的问题的响应......

我尝试清理解决方案,使用 x64 目标架构构建,但这并不总是有效。

  • 为什么我有这个问题?
0 投票
1 回答
654 浏览

c++ - Visual Studio 2012 中的各种链接器错误

我正在做一项学校作业,我们为此提供了一些 .lib 文件。我将它们添加到链接器中,但仍然出现链接器错误。当我将它们更改为不同的路径时,我得到了一个找不到文件的错误。我的错误是:

我无法编译它。我什至尝试将项目从 unicode 更改为其他选项,因为我读到这解决了某人的这些错误之一的问题。

编辑,我也收到很多这些警告,它们可能是相关的:Warning 1 warning C4251: 'sql::SQLString::realStr' : class 'std::basic_string<_Elem,_Traits,_Alloc>' need to have 'sql::SQLString' 类的客户端使用的 dll 接口 c:\users\kenny\documents\software project\groep 6\docs\dev-branch-kenny\kiadealer\kiadealer\include\cppconn\sqlstring.h 38

0 投票
1 回答
1460 浏览

c++ - 添加 nuget 包后出现多个 Link2001 错误

我希望我可以发布另一个问题,但我认为了解我的问题很重要。因此,我正在研究开源项目 Sumo,并尝试添加一个通过 http 以 json 格式发送数据的类。因此,在我开始工作之前,项目编译并构建了 exe。然后我添加了这两个文件:

我的代码:

所以该项目之前已经使用过 xerces,就像我说的那样,它工作得很好。现在,当我添加 nuget 包 casablanca 并尝试构建它时,我在 casblanca 类和 xerces 中遇到了一些 LNK 错误。好吧,我将 prag,a 添加到库中,这些错误消失了。相反,我现在在同一个项目和另一个项目中再次遇到 LNK 错误,甚至更多。我想知道我是 C++ 新手,但现在我完全迷失了,因为为什么他现在在添加该项目之前已经构建好的东西出现问题?

所以这就是现在的错误,现在我真的迷失了,因为甚至像 std:basic_string LNK 错误......

我真的在这里迷路了,任何帮助都将不胜感激。从我在其他主题中读到的关于错误的内容中,我并没有真正得到它,因为自从我添加该项目之前构建工作以来,一切都是定义的?有没有像圆圈之类的东西?

0 投票
1 回答
50 浏览

c++ - 错误 LNK2001 - 使用 this 关键字时

this使用关键字时出现链接器错误:

Error 1 error LNK2001: unresolved external symbol "public: virtual void __thiscall GameObject::update(void)" (?update@GameObject@@UAEXXZ) Main.obj Pong C++ Conversion

这是代码

x 变量在 GameObject 类中

有些人可能会注意到,我一直在尝试通过这些教程重新创建 Java 应用程序 Pong,以便更好地了解 OpenGL 和 C++ https://www.youtube.com/playlist?list=PL513808FE7D9A5D68

而且我知道在 header/cpp 文件中实现这个游戏可能更容易,但我对首先包含哪个类头感到困惑,因为有四个GameObject类,并且它们的变量在它们的实例之间到处乱飞

0 投票
0 回答
185 浏览

visual-studio-2010 - 使用 boost 库将解决方案从 VS2008 升级到 VS2010。错误 LNK2001

我目前正在尝试在 VS2010 中构建在 VS2008 中开发的解决方案。出于设计目的,项目必须使用 v90 工具集构建,并具有 v3.5 的目标框架。在转换向导完成导入的项目后,我已经完成并将它们的每个目标框架/工具集更改为这些值。这些项目使用以下 boost 库:thread、system、regex 和 date_time。我已经在 VS2010 命令提示符下使用以下命令将这些库从 boost_1_47 版本构建到 v90 工具集:b2 toolset=msvc-9.0 –build-type=complete –with-'libraryname'。

在 C++ 附加包含目录中引用了到 boost 根文件夹的链接,并且在链接器附加库目录中引用了内置库的 boost lib 文件夹。我正在为 32 位平台构建。

尝试构建解决方案时,出现以下错误:

我相信错误的原因可以在 boost auto_link.hpp 文件的以下部分中看到:

这表明自动链接器仍在尝试链接到 v100 库,尽管 boost 库和项目文件被设置为 v90 工具集。我不知道 BOOST_MSVC 值是在哪里/如何定义的,但希望这是导致我的链接器错误的原因。

我的项目 build.h 文件包含以下语句:

#define BOOST_ALL_DYN_LINK

0 投票
1 回答
285 浏览

c++ - 使用 PCL 的 BreadthFirstIterator 时出现 LNK2001 错误

这是我的代码 pcl::octree::OctreePointCloud::BreadthFirstIterator tree_depth_it; pcl::octree::OctreePointCloud::BreadthFirstIterator tree_depth_it_end = octree.breadth_end();

显示的错误

错误 1 ​​错误 LNK2001: 无法解析的外部符号“public: class pcl::octree::OctreeBreadthFirstIterator > & __cdecl pcl::octree::OctreeBreadthFirstIterator >::operator++(void)” (??E?$OctreeBreadthFirstIterator@V?$OctreeBase@ VOctreeContainerPointIndices@octree@pcl@@VOctreeContainerEmpty@23@@octree@pcl@@@octree@pcl@@QEAAAAEAV012@XZ) C:\Pathe\Octree.obj manipulability_core

当我使用 OctreePointCloudSearch 时没有任何错误,但自从我添加了 BreadthFirstIterator 代码后,错误就会出现。我已经链接了标准 pcl_octree_debug.lib,提升了 lib 和 misc pcl 库,但我仍然无法摆脱错误。

0 投票
2 回答
1556 浏览

c++ - LNK2001:为 x64 平台构建时无法解析的外部符号

该项目建立在 Win32 平台上,而不是在 x64 上。

完整的错误消息:dllentry.obj:错误 LNK2001:无法解析的外部符号“类 CFactoryTemplate * g_Templates”(?g_Templates@@3PAVCFactoryTemplate@@A)

dllentry.cpp 可以在两个平台上编译。它包含外部声明:

然后在两个函数中使用 g_Templates[]:

我检查了项目设置中的所有库,似乎一切正常,使用的是 64 位版本。我应该怎么做才能为 x64 平台构建项目?