Visual Studio 2010 - C++ 致命错误 LNK1120: 1 个未解析的外部
Visual studio 2010 - C++ Fatal Error LNK1120: 1 unresolved externals
考虑Interface
类:
class Interface
{
public:
virtual ~Interface(){}
virtual void someMethod() = 0;
virtual void someMethod2(){}
};
其中someMethod
是纯虚拟的,someMethod2
是虚拟的 然后Derived
两个派生类
class Derived : public Interface
{
public:
Derived(){ cout << "derived constructor";}
~Derived(){ cout << "derived destructor";}
virtual void someMethod() override { cout << "derived someMethod";}
virtual void someMethod2() { cout << "derived someMethod2";}
};
和DerivedB
:
class DerivedB : public Interface
{
public:
DerivedB(){ cout << "derivedB constructor";}
~DerivedB(){ cout << "derivedB destructor";}
virtual void someMethod() override { cout << "derivedB someMethod";}
};
它只实现了纯虚拟方法。 在main
中,我正在执行以下操作:
vector<Interface *> myVector(4);
for(int i = 0; i < 4; i++){
if(i%2 == 0){
myVector[i] = new Derived();
}else{
myVector[i] = new DerivedB();
}
}
当我尝试构建时,出现以下错误:
error LNK2019: unresolved external symbol "public: __thiscall DerivedB::DerivedB(void)" (??0DerivedB@@QAE@XZ) referenced in function _main
debugTest.exe : fatal error LNK1120: 1 unresolved externals
怎么了?
你还应该为你声明的派生类实现其他方法,即Derived::~Derived(void)
、Derived::someMethod(void)
、Derived::someMethod2(void)
、DerivedB::~DerivedB(void)
和DerivedB::someMethod(void)
。
请参阅这篇文章:定义和声明之间有什么区别?和什么是未定义的引用/未解析的外部符号错误,我该如何修复它?
相关文章:
- 在函数内部的声明中初始化数组,并在外部使用它
- 使外部项目可用于find_package CMake
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- C++:来自外部文件的Trivia
- 从函数角度看ID到文件路径的内部与外部映射
- C++:将外部库链接到dll库
- Visual Studio 2010 - C++ 致命错误 LNK1120: 1 个未解析的外部
- 未解决的外部符号Visual Studio 2010错误
- 在VIsual studio 2010 express中使用GLEW,SDL和OpenGL的未解析外部符号
- Visual Studio 2010 C++ /w Google Protocol Buffers.找不到 60 个外部
- 在Visual Studios 2010的外部依赖项文件夹中搜索文本/代码
- 编译任何内容时出现奇怪的错误,VS 2010:致命错误LNK1120:1个未解决的外部
- Visual Studio 2010 中的外部库
- vsc++ 2010调试与外部入口点
- VC++ 2010 错误 LNK2019: 未解析的外部符号
- Visual C++2010-将项目复制到其他计算机后出现多个未解决的外部错误
- Visual Studio 2010外部工具参数为空
- Visual Studio 2010 - C++中未解析的外部符号
- LUA 编译错误与 Visual 2010"外部符号"结构lua_State * __cdecl luaL_newstate(无效)"