如何修复错误LNK2001和LNK2019
How to fix error LNK2001 & LNK2019
ProjectAAA.obj:错误LNK2001:未解析的外部符号"public:__thiscall X::ClassEvent::ClassEvent(unsigned int)"(??0ClassEvent@X@@QAE@I@Z)
boost::shared_ptr<ClassEvent> bcfEvent(new ClassEvent((unsigned int) 10));
我已经定义了ClassEvent::ClassEvent(unsigned int)
,不知道如何修复这个LINK错误。
欢迎提出任何建议。
谢谢
更多信息:
1> ProjectAAA.obj:错误LNK2019:未解析的外部符号"public:__thiscall APP::X::ClassEvent::ClassEvent(unsigned int)"(??0ClassEvent@X@应用程序@@QAE@I@Z) 在函数"private:class std::vector,class std::allocater>>__thiscall APP::X::ProjectAAA::GenerateEvents(class std:::map>>const&)"(?GenerateEvents@ProjectAAA@X@APP@@AAE?AV$vector@V$shared_ptr@VClassEvent@X@APP@@@提升@@V$allocator@V$shared_ptr@VClassEvent@X@APP@@@boost@@std@@std@@ABV$map@VDate@应用程序@@IUEventAttributesMapCompare@ProjectAAA@X@2@V$allocator@U$成对@$$CBVDate@APP@@我@std@@@std@@@5@@Z)
现在我已经完全隔离了错误:
1> ProjectAAA.obj:错误LNK2019:未解析的外部符号"public:__thiscall APP::X::ClassEvent::ClassEvent(unsigned int)"(??0ClassEvent@X@应用程序@@QAE@I@Z) 在函数"private:void __thiscall APP::X::ProjectAAA::TestGenerateEvents(void)"中引用(?TestGenerateEvents@ProjectAAA@X@APP@@AAEXXZ)
您的问题是解决方案中有两个ClassEvent.cpp
文件。当VC++编译您的解决方案时,它会在一个目录中输出所有obj文件,从而生成两个ClassEvent.obj文件。无论以后编译哪个cpp,都会覆盖前者。这会导致第一个符号丢失,并且链接器不可见。
您可以通过打开其中一个文件的属性,选择"C/C++"->"输出文件"->"对象文件名"并将其更改为一些不冲突的值(如ClassEvent2.obj
)来解决此问题。
我相信这是VisualStudio中的一个错误,但在最近的4个版本中还没有解决,因此很可能会一直存在。
经过多次测试,我找到了解决方案。
团队中有人将ClassEvent.CPP排除在项目之外!!!
在我的情况下,在我将构建架构从x64更改为x86位后,所有功能都开始正常工作。两天前我也遇到了同样的问题。这是由于将我的程序部署到另一台计算机造成的。出于某种原因,我不知道,体系结构设置已经从x86(在我写的时候)更改为x64。PS。我使用了Visual Studio 2015;
- 类C++中的函数问题(LNK2019和LNK1120错误)
- 为什么我的 heap.h 文件给我一个LNK2001错误?
- 将QT项目导入Visual Studio 2019会给我带来很多LNK2001错误
- CppSQLite 抛出"LNK2019: unresolved external symbol"错误
- 我收到错误LNK2001:未解析的外部符号(C++代码)
- Visual Studio中的wxwidgets应用程序给出错误"LNK2019 unresolved external symbol"
- 什么会导致LNK2019 VisualStudio中的错误?
- 构建 Tensorflow 调试时出现错误LNK2019
- LNK2019 在文件中调用静态成员的方法时出错.cpp
- 错误LNK2019未解析的外部符号"public: __thiscall SLinkList<char>::SLinkList<char>(void)"
- ERROR LNK2001 AND LNK2019
- LNK2001和LNK2019 VS2008期间(或VS2010)的错误从VS2005升级
- 如何修复错误LNK2001和LNK2019
- 未解析的外部符号LNK2001、LNK2011、LNK2019
- LNK2001和LNK2019错误 - DirectX 未解析的外部符号
- C++未解析的外部符号LNK2019和LNK2001
- Qt:LNK2001和LNK2019 跨源文件实现信号/时隙后会出现错误
- VS2010E Qt 5.1编译错误LNK2001 LNK2019
- C++/Qt-从主窗口打开对话框-错误LNK2019-LNK2001:未解析的外部符号
- Qt c++中的GStreamer链接器错误LNK2019和LNK2001