问题标签 [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 投票
1 回答
1942 浏览

c++ - 静态库:静态常量数组 - LNK2001:使用库的应用程序中未解析的外部符号

我已经在标头中声明了静态 const 数组,然后在 cpp 文件中实现了它,但我无法弄清楚发生了什么。

子系统.h:

子系统.cpp:

错误 LNK2001:未解析的外部符号“private static int const * const Engines::Particles::SubSys::_M”(?_M@SubSys@Particles@Engines@@0QBIB)

如果我在类外部的标头中实现数组,我不会在使用静态库的应用程序中得到 LNK2001 错误。我在编译静态库时确实得到了 LNK4006(即多次添加符号)。

我还删除了 .cpp 文件中的命名空间,并使用了完整的 Engines::Particles::SubSys::_M 名称。出现同样的问题。

0 投票
2 回答
23931 浏览

c++ - 在库中使用 fstream 时,我在可执行文件中出现链接器错误

当我添加

并尝试使用

在我的库中,编译使用该库的项目时出现以下链接器错误:

任何想法为什么?

0 投票
1 回答
1685 浏览

c++ - VS2010 错误 LNK2001: 在 MFC 静态应用程序中无法解析外部

当我尝试将静态 MFC 应用程序与 libmp3lame.lib C++ 库链接时,我在 Visual Studio 2010 SP1 中收到此错误。

我怎样才能摆脱这个错误?

0 投票
1 回答
3233 浏览

c++ - MSVC 链接器错误 LNK2001 未解决 cpp 文件中定义的模板方法的外部问题

我对 C++ 有点陌生(我通常在 C# 中工作,但现在我正在从事一个跨平台项目),所以我并不真正习惯它的所有概念以及编译/链接的工作原理。所以,自然地,我不太确定为什么会出现这个错误。我已经对该错误进行了一些研究,当人们没有链接库或在头文件中声明函数但从未在此之外定义它时,这似乎是人们通常遇到的问题。奇怪的是,我的错误不是两者的结果。确切的错误文本是这样的:

" Error 1 error LNK2001: unresolved external symbol "public: __thiscall ld22::QuadNode<class ld22::DrawableObject>::QuadNode<class ld22::DrawableObject>(class sf::Rect<float>)" (??0?$QuadNode@VDrawableObject@ld22@@@ld22@@QAE@V?$Rect@M@sf@@@Z) C:\Users\Nick\Documents\Visual Studio 2010\Projects\GDCSFMLTest\GDCSFMLTest\main.obj"

对我来说,它似乎试图告诉我我从未实现过该文件。不过,我有。main.cpp,编译成 main.obj 并给出错误的文件,包括Quadtree.h,它用行声明函数(技术上,构造函数),QuadNode(sf::FloatRect);在文件中Quadtree.cpp我包含Quadtree.h并定义构造函数,如下所示:

请原谅任何不好的编码实践等等,正如我所说,我对 C++ 还很陌生,我仍在努力解决问题。感谢您提供任何帮助(特别是如果我在某处犯了愚蠢或初学者的错误,我觉得我确实做到了),如果您需要更多信息,我很乐意提供。

0 投票
1 回答
747 浏览

visual-c++ - 在项目中包含 DLL 时的 LNK2001 和 LNK1120 - MSVC++

我有一个 DLL 和 lib 文件。我已将它们包含在根源目录中,并通过 Additional Dependencies 添加了 lib 引用。但是,我收到以下错误:

这将从“engine.h”中引用:

在“state.cpp”(来自 DLL 的源代码)中,它被声明为

可能是我需要将 DLL 放在特定的地方吗?Windows 知道去哪里看吗?我在属性中找不到专门引用 DLL 文件的地方,只有 lib 文件。

另外,在声明变量或只需要函数时,我需要一个 __declspec(dllexport) 吗?

提前致谢!

0 投票
1 回答
119 浏览

visual-studio-2008 - 使用 .lib 文件构建项目的奇怪行为

我正在使用 Visual Studio 2008。我正在尝试在我的源代码中使用 C++ 库。在我的计算机上安装库后,我有一些包含文件以及一些库文件。此外,bin文件夹中还有msvcm80.dll、msvcp80.dll、msvcr80.dll。

我在链接下面解释的项目时遇到问题。我在网上搜索,但我没有找到我的问题的相对答案。

我做了以下程序:

  1. 我使用了 Explorer Lib 软件,发现 .lib 文件是在发布配置中构建的。

  2. 我将 Visual Studio 解决方案设置为 32 位的发布模式。我不确定我应该使用 32 还是 64。(下面我解释了当我将其更改为 x64 平台时会发生什么)。

  3. 我将库文件添加到链接器依赖项及其在附加库目录中的路径。

  4. 我在源代码中包含了头文件。

  5. 当我尝试构建解决方案时,我在源代码中调用的函数上收到错误“LNK2001:未解析的外部符号”。即使我删除了库依赖项并在链接器配置中删除了它们的路径,我也会收到相同的错误。

我的问题是为什么链接器没有在库文件的源代码中找到被调用的函数?

当我将平台从 Win32 更改为 x64 时,我收到错误 LNK 2001 但在另一个功能上。不同之处在于链接器抱怨我没有在源代码中直接调用的函数。

有人可以帮我找出这个错误的原因吗?如果我没有清楚地解释我的问题,请告诉我。

谢谢,

艾哈迈德

0 投票
1 回答
4148 浏览

c++ - #包括导致无法解析的外部符号,使用 bcp

我不是一个有经验的程序员。我尝试剪切部分 boost 并将其直接粘贴到我的项目中,这是 Visual Studio 2010 中的 C++ 解决方案。我是这样做的:

  • 解压boost库
  • bootstrap.bat
  • bjam tools/bcd- 这创建了目录.\bin.v2\tools\bcp\msvc-10.0\release\link-static\threading-multi\
  • 将目录更改为上述
  • 我写了一个脚本来扫描解决方案中的所有文件,结果是:
    noncopyable static_assert ratio thread/locks thread chrono interprocess/mapped_region thread/recursive_mutex crc cstdint interprocess/file_mapping make_shared shared_ptr lexical_cast
  • bcp --boost=C:\Users\xxxxxxxx\boost_1_49_0 noncopyable static_assert ratio thread/locks thread chrono interprocess/mapped_region thread/recursive_mutex crc cstdint interprocess/file_mapping make_shared shared_ptr lexical_cast lexical_cast ./myboost
  • 将./myboost复制到解决方案中,设置属性,一切正常,直到我不尝试 #include "boost/chrono.hpp" (例如 #include "boost/lexical_cast.hpp" 没问题)。
  • boost/chrono.hpp 导致链接器错误:

    3>playerMain.obj : 错误 LNK2001: 无法解析的外部符号 "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAABVerror_category@12@XZ)

    3>playerMain.obj : 错误 LNK2001: 无法解析的外部符号 "class boost::system::error_category const & __cdecl boost::system::generic_category(void)" (?generic_category@system@boost@@YAABVerror_category@12@XZ)


我是否正确使用 bcp?
我应该怎么做才能让它工作?

0 投票
1 回答
412 浏览

c++ - LNK2001 即使它被定义

在当前项目中,我正在构建一个Physics命名空间。在文件 Core.h

然后在 Core.cpp

虽然我收到了错误,它指的是#includesCore.h 的另一个类,我什至甚至Physics::对所有这些类进行了开头,但 LNK 错误仍然存​​在。

编辑:包含错误

0 投票
1 回答
578 浏览

c++ - 由于从结构头创建向量数组而出现错误 LNK2019?

我正在尝试从输入文件创建一个数组向量,然后将该向量加载到我的主文件中。我也尝试在整个程序中使用相同的向量。然而,当我编译时,我得到了一堆错误 LNK2019。我想我知道这发生在哪里,但我不确定为什么。有人可以帮忙或解释一下吗?谢谢!

似乎发生在:1.vector< Competition> myVector 2.vector<Registration> myRegistration

这些是我收到的错误消息

错误 LNK2001:未解析的外部符号“公共:__thiscall Registration::~Registration(void)”(??1Registration@@QAE@XZ)

错误 LNK2001:未解析的外部符号“公共:__thiscall Database::~Database(void)”(??1Database@@QAE@XZ)

我的 Compop 标头,从文件中读取并将内容存储到 Competition 的向量中(类似于我的 PushRegistration 标头)

我的比赛标题(类似于我的注册标题):

我的注册标题:

0 投票
1 回答
2651 浏览

c++ - Qt LNK2019、LNK2001、LNK1120 QT 多媒体错误 [Visual Studio Express '10]

出于某种原因,每当我尝试使用示例代码时,我的编译器都拒绝合作。

我使用的示例代码来自这里:http: //qt-project.org/doc/qt-4.8/multimedia-videowidget.html;我目前只使用了 VideoWidgetSurface 类。

据我所知,我的代码与示例的代码 100% 相同,并且我没有编码错误。

但是,编译后我收到:

. . . .

. . . .

[删除错误,因为有很多]

========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========

我不完全明白为什么我会收到此错误。到目前为止,我在使用 Qt 时遇到的问题很少,并且已经成功运行了我的程序(在 Visual Studio '10 中,不使用 qmake)。

我仔细检查了我是否已链接到附加依赖项部分中所有可能的 .lib 文件,并且我没有遗漏任何文件。

似乎此错误仅存在于多媒体模块。我搜索了现有的多媒体 .lib 但找不到任何内容。

我尝试了以下 cmd 命令:

但它没有工作,我仍然收到错误。

任何帮助深表感谢。如果您想查看更多我的代码或我的链接/包含,我也会分享这些。谢谢!