错误LNK2019:在多个项目解决方案中无法解析的外部符号
error LNK2019: unresolved external symbol in a multiple projects solution
我有一个视觉工作室解决方案与多个项目。其中之一,"MyProject"是一个静态库(.lib)。该项目在众多的班级中,有"A"answers"B"两个班级。
A.h:
#pragma once
class A
{
public:
void foo();
};
A.cpp:
#include A.h
void A::foo(){
//do something
}
B.h:
#pragma once
class B
{
public:
void bar();
};
B.cpp:
#include B.h
#include A.h
void B::bar(){
A a;
a.foo();
}
没有编译错误,我得到链接错误:
OtherProject.lib(b.b obj):错误LNK2019:未解析的外部符号"public: void __thiscall答::foo(空白)"(?foo@A@@QAE_NXZ)在函数"public: void"中引用__thiscall B:酒吧(空白)"(? bar@B@@QAEXXZ)
一切似乎都很好。我确实看到了a.p p的编译过程。仅构建或链接项目"MyProject"是可以的。但是当试图构建整个解决方案时,我得到了错误。
谢谢!
结果表明,有另一个项目OtherProject
包含B
类并使用其功能bar()
。我没有很好地阅读错误,没有注意到链接错误发生在另一个项目中。我所要做的就是在OtherProject
中包含A.cpp
。
这个方法的实现在a.p中被注释掉:
void A::foo(){
//do something
}
或者A.cpp
不包含在项目的构建中。在解决方案资源管理器中右键单击a.p,并选择Properties,以查看它是否被排除在构建之外。当您构建时,您是否看到如下内容:
1>Compiling...
1>A.cpp
我把这段代码输入到我的Visual Studio中,它工作得很好
另一个解决方案是合并。h和。cpp文件。这样你就能得到这个问题的解。在我的例子中,我喜欢这样,它工作得很好
相关文章:
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 未解析的外部符号_MsiLocateComponentW@12.
- 在C++中使用 gRPC 时未解析的外部符号
- LibPrivoxy: 未解析的外部符号 __declspec(dllimport) int __stdcall Sta
- 尝试从 XamlApplication 编译 C++/WinRT 空白应用程序时,我收到未解析的外部符号 winrt_make_*
- 我收到错误LNK2001:未解析的外部符号(C++代码)
- 可视抽象类 c++(错误 LNK 2001:未解析的外部符号)
- 如何摆脱C++中未解析的外部符号"private: static char"错误?
- 当 lib 已添加到其他依赖项时,如何在 VS 中调试未解析的外部符号错误
- 仅在少数方法(静态或共享库)中解析的外部符号
- 未解析的外部符号"__declspec(dllimport)与 Spdlog c++ 库
- 函数 _main (OPENGL C++) 中引用的未解析的外部符号 ________
- 错误LNK2019未解析的外部符号"public: __thiscall SLinkList<char>::SLinkList<char>(void)"
- 使用静态 constexpr 成员的未解析外部符号
- 引入参数化构造函数后显示 LNK 2019 未解析外部符号的代码错误
- Dlib LNK2001未解析的外部符号USER_ERROR__consistent_build_configurati
- 矛盾的未解决的外部符号+未使用的库与VS2017和FFMPEG 4
- 链接器错误:切换到unicode生成给出:未解析的外部符号WinMain
- 错误 LNK2019:未解析的外部符号"外部"C"此错误是什么?
- 错误 : LNK2019: 未解析的外部符号"外部 "C"